智慧树知到《C语言编程新思路(山东理工大学)》最新单元测试答案

注意事项:
如支付后未自动显示完整内容,可点击“已支付?点此查询订单”进行查看。
如遇内容不符或缺失,请联系内容作者或平台客服(工作日 9:00-18:00)。

第一章测试

1、关于一个C语言程序执行的起点和终点,以下选项正确的是 ( )。

A、main main
B、第一个 最后一个
C、main 任意
D、main 最后一个

参考答案:A

2、C语句的程序一行写不下时,可以 ( )。

A、用逗号换行
B、用分号换行
C、用任意空格换行
D、用回车换行

参考答案:D

3、以下叙述不正确的是 ( )。

A、C程序中,语句之间必须用分号分隔
B、C程序中,多行语句可以写在一行上
C、C程序中,可以不必包含主函数
D、一个C程序,可以由多个函数组成

参考答案:C

4、C语言规定,在一个源程序中,main函数的位置 ( )。

A、必须在最开始
B、必须在系统调用库函数的后面
C、可以任意
D、必须在最后

参考答案:C

5、以下叙述正确的是 ( )。

A、在C程序中,注释说明只能位于一条语句的后面。
B、C程序的每行中只能写一个语句
C、C语言本身没有输入输出语句
D、在对C语言进行编译的过程中,不能发现注释中的错误

参考答案:D

6、函数的主体部分需要用一对 ( )括起来。

A、{ }
B、[ ]
C、( )
D、< >

参考答案:A

7、以下叙述错误的是 ( )。

A、一个C程序只有在编译、连接成.exe程序之后才能执行
B、C程序编译后生成.obj文件
C、C程序的每一条语句都必须用分号结束
D、只有一个分号的语句不是合法的C语句

参考答案:D

8、计算机能够直接识别和执行的计算机语言 ( )。

A、汇编语言
B、机器语言
C、C语言
D、高级语言

参考答案:B

9、以下叙述错误的是 ( )。

A、对于计算机而言,程序是指完成某一特定任务的一组指令序列
B、一个C程序编译成功后在连接时发现错误,需要编辑修改,然后不必重新编译和连接即可直接运行。
C、机器语言和汇编语言都是低级语言
D、C语言是一种函数型语言,每个C语言程序都是由若干个函数组成

参考答案:B

10、对C程序的注释说明信息必须写在 ( )之间。

A、’和’
B、<和>
C、/*和*/
D、{ 和 }

参考答案:C

11、用C语言编写的源程序,必须翻译成用二进制指令表示的目标程序,才能被计算机识别,这个过程称为 ( )。

A、编辑
B、编译
C、汇编
D、解释

参考答案:B

12、关于C语言的特点,以下叙述错误的是 ( )。

A、C语言一共只有32个关键字,9种控制语句,程序书写自由
B、C语言共有34种运算符,表达式类型多样化
C、C语言不能直接对硬件进行操作
D、C语言程序可以方便的在不同的计算机间和各种操作系统中实现程序的移植

参考答案:C

13、C语言程序的基本构成单位是 ( )。

A、语句
B、表达式
C、函数
D、运算符

参考答案:C

14、能够在编译过程中被检查出来,并给出提示信息的是 ( )。

A、语法错误
B、逻辑错误
C、运行错误
D、注释错误

参考答案:A

15、以下叙述错误的是 ( )。

A、计算机语言大致可以分为三大类:机器语言、汇编语言和高级语言
B、高级语言比低级语言更贴近人类使用的语言,易于理解和使用
C、C语言是一种通用的、过程式编程语言,具有高效、灵活、可移植等优点
D、C语言属于汇编语言

参考答案:D

16、C语言源程序文件的后缀名是 ( )。

A、.obj
B、.exe
C、.c
D、.vbp

参考答案:C

17、C语言编译程序是 ( )。

A、C程序的机器语言版本
B、一组机器语言指令
C、将C源程序编译成目标程序
D、厂家提供的应用软件

参考答案:C

18、以下叙述错误的是 ( )。

A、C语言的注释有两种类型:单行注释和多行注释
B、C程序的单行注释语句以“//”开始
C、C语言的注释语句不影响编译结果
D、C语言程序中只要出现在“/*”和“*/”之间的就一定是注释内容

参考答案:D

19、C语言源程序文件经过编译后的目标文件后缀名是 ( )。

A、.exe
B、.obj
C、.c
D、.vbp

参考答案:B

20、C语言源程序编译、连接后的可执行文件后缀名是 ( )。

A、.exe
B、.obj
C、.c
D、.bak

参考答案:A

第二章测试

1、下面4个选项中,均是不合法的用户标识符的选项的是( )。

A、Date sum do
B、char pao _123
C、b+a if float
D、_abc Temp Int

参考答案:C

2、下面4个选项中均是合法常量的选项是( )。

A、058 12e−3 3.6 'd'
B、−12.8 0x98 43.56e2 '\n'
C、"w" 034 0xa3 '\m'
D、4.45 076 5.33E1.5 "how"

参考答案:B

3、以下叙述不正确的是( )。

A、在C语言中,%运算符的优先级高于/ 运算符
B、在C语言中,area和AREA是两个不同的变量名
C、在C语言中,可以使用二进制整数
D、若a和b类型相同,在计算了赋值表达式a=b后,a得到b的值,而b的值不变

参考答案:C

4、在C语言中,要求运算对象必须是整型的运算符是 ( )。

A、/
B、*
C、+
D、%

参考答案:D

5、若有说明语句:char ch='\0x41'; 则变量ch包含( )个字符。

A、1
B、2
C、3
D、说明不合法,ch的值不确定

参考答案:A

6、若有定义:int a=7; float x=2.5,y=4.5; 则表达式x+a%3*(x+y)/2的值是 ( )。

A、2.500000
B、6.000000
C、5.500000
D、0.000000参考答案:B

7、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( )。

A、int
B、float
C、double
D、不确定

参考答案:C

8、以下叙述正确的是 ( )。

A、在C语言中,一行只能写一条语句
B、若a是实型变量,则在C语言中不允许用其他类型的数据对其赋值
C、在C语言中,无论是整数还是实数,都能被准确无误地表示
D、在C语言中,%是只能用于整数运算的运算符

参考答案:D

9、在C语言中,int型数据在内存中的存储形式是( )。

A、原码
B、反码
C、补码
D、ASCII码

参考答案:C

10、下列选项中可作为C语言的合法整数的是 ( )。

A、a2
B、101011B
C、03845
D、0x4b5参考答案:D

11、字符型数据在内存中是以 ( )形式存储的。

A、ASCII码
B、补码
C、原码
D、BCD码

参考答案:A

12、下列叙述正确的是( )。

A、C语言不允许混合类型数据间进行运算
B、在C语言中,'b'和"b"的含义是不同的
C、C语言中,任何类型的数据都可进行%运算
D、在C语言中,整型常量有二进制、八进制、十六进制和十进制4种表示形式

参考答案:B

13、#include <stdio.h> int main() { char ch; int i; i=65; ch="a"; printf("%c,%c,%d,%d \n",i,ch,i,ch); return 0; } 这段程序的运行结果是( )。

A、A,a,65,97
B、a,A, 97,65
C、a,A, 65,97
D、编译错误,无法运行

参考答案:D

14、设整型变量a=2,则执行下列语句后,实型变量b的值不是0.5的是( )。

A、b=1.0/a
B、b=1/(float)a
C、b=1/(a*1.0)
D、b=(float)(1/a)

参考答案:D

15、下列叙述正确的是( )。

A、不同类型的变量所占内存单元是相同的
B、C语言中,变量可以不经定义而直接使用
C、赋值表达式的左边只能是变量名
D、字符串常量"China!"在存储时,系统为其分配6个字节的空间

参考答案:C

16、#include <stdio.h> int main() { int a=b=5,c; c=a+b; printf("c=%d\n",c); } 这段程序的运行结果是( )。

A、0
B、10
C、不确定
D、编译错误,无法运行

参考答案:D

17、C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )。

A、必须是下划线
B、可以是这三种字符中的任一种
C、必须为字母或者下划线
D、必须是字母

参考答案:C

18、如果在一个C语言表达式中有多个运算符,则运算时应该( )。

A、只考虑优先级
B、先考虑优先级,然后考虑结合性
C、只考虑结合性
D、先考虑结合性,然后考虑优先级

参考答案:B

19、已知字符A的ASCII值是65,若定义int i; 则执行语句i=’A’+3; 后,正确的叙述是 ( )。

A、i的值是字符A的ASCII值加上3,即68
B、语句不合法
C、语句可以执行,但没有计算结果
D、i的值是字符E

参考答案:A

20、在C语言中常量’\n’和常量”ABC”在内存中占用的字节数分别是( )。

A、1 3
B、1 4
C、2 3
D、2 4参考答案:B

第三章测试

1、若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是 ( )。

A、a=b=c=d=100;
B、d=d-1;
C、a*b;
D、d=(c=30)+b;

参考答案:C

2、以下选项中不是C语句的是 ( )。

A、{int i;printf("%d\n",i);}
B、;
C、a=5,c=10
D、{ ; }

参考答案:C

3、以下程序的输出结果是 ( )。 #include "stdio.h" int main() { int x=100, y=30; printf("%d\n",y=x/y); return(0); }

A、0
B、1
C、3
D、不确定的值

参考答案:C

4、若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是 ( )。

A、read(a,b,c);
B、get("%d%d%d",a,b,c);
C、scanf("%d%d%d",a,b,c);
D、scanf("%d%d%d",&a,&b,&c);

参考答案:D

5、以下程序段的输出结果是( ) #include <stdio.h> int main(void) { int i; float x; double y; y=x=i=10/4; printf("y=%.2f,x=%.2f,i=%d\n",y,x,i); return(0); }

A、y=2.00, x=2.50, i=2
B、y=2.50,x=2.50,i=2
C、y=2.50, x=2.00, i=2
D、y=2.00,x=2.00,i=2参考答案:D

6、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是 ( )。

A、a=a+b, b=a-b, a=a-b;
B、t=a, a=b, b=t;
C、a=t; t=b; b=a;
D、t=b; b=a; a=t;

参考答案:C

7、以下程序的输出结果是 ( )。 #include <stdio.h> int main(void) { int a=4,b=8; printf("a=%%d,b=%%d\n",a,b); /* 注意转义字符的作用 */ return(0); }

A、a=%2,b=%5
B、a=2,b=5
C、a=%%d,b=%%d
D、a=%d,b=%d

参考答案:D

8、已知字母A的ASCII值为十进制数65,下面程序的输出是 ( )。 #include "stdio.h" int main(void) { char ch1,ch2; ch1='A'+'5'−'3'; ch2='A'+'6'−'3'; printf("%d,%c\n",ch1,ch2); return(0); }

A、67,D
B、67,C
C、B,C
D、C,D

参考答案:A

9、若从终端输入以下数据,要给变量c赋以340.25,则正确的输入语句是( )。

A、scanf(%f”,&c)
B、scanf(%.2f”, &c);
C、scanf(%6.2f”, &c);
D、scanf(%4f”, &c);

参考答案:A

10、以下程序运行时输入:25<回车>,执行后输出的结果是 ( )。 #include <stdio.h> int main(void) { char ch1,ch2; int n1; ch1=getchar(); ch2=getchar(); n1=ch2-ch1; printf("%d",n1); return(0); }

A、3
B、-3
C、25
D、编译错误

参考答案:A

11、有以下程序 #include<stdio.h> int main(void) { char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf("%c%c\n",c5,c6); return(0); } 程序运行后,若从键盘输入(从第一列开始) abc<回车> def<回车> 则输出结果是( )。

A、cdef
B、abef
C、abcd
D、abde

参考答案:D

12、以下程序段的输出结果是( )。 #include <stdio.h> int main(void) { char c1='a',c2='c'; printf("%d,%c\n",c2-c1,c2-c1+'B'); return(0); }

A、2,b
B、3,B
C、2,D
D、类型不一致,出错

参考答案:C

13、若变量已正确定义为float类型,要通过语句scanf(“%f%f%f”,&a,&b,&c);给a赋值10.0,b赋值20.0,c赋值30.0,不正确的输入形式是( )。

A、10 20 30
B、10,20,30
C、10.0 20.0 30.0
D、10,20 30参考答案:B

14、以下程序的输出结果是( )。 #include <stdio.h> int main(void) { int a,b; a=10; b=20; printf("a=%d\nb=%d\n",a,b); return(0); }

A、10,20
B、a=10,b=20
C、a=10 b=20
D、10 20参考答案:C

15、若变量已正确说明,要求用以下语句给a赋值2.0,给c1赋值字符#,给b赋值4.0,则不正确的输入形式是( )。scanf(“%f%c%f”, &a, &c1, &b);

A、2.0 # 4.0 ’
B、2.0#4.0 ‘
C、2# 4
D、2.0# 4.0 ,

参考答案:A

16、以下说法错误的是 ( )。

A、赋值表达式的功能是将赋值运算符右侧的值赋给其左侧的变量。
B、若float x=5;可以对变量x进行%操作,如x%2的值是1。
C、复合语句是用一对花括号括起来的若干条语句,从语法作用上讲一条复合语句视为一条语句。
D、长整型(long int)变量,使用scanf函数输入时,需使用%ld格式符。

参考答案:B

17、结构化程序设计由三种基本结构组成,下面哪个选项不属于三种基本结构 ( )。

A、顺序
B、选择
C、循环
D、回溯

参考答案:D

18、下面程序段功能是先输入一个整数,然后将输入的整数输出,请指出哪部分有错( )。 #include <stdio.h> // 1 int main(void) { int i; // 2 scanf("%d", i); // 3 printf("i=%d\n ",i); // 4 return(0); }

A、1
B、2
C、3
D、4参考答案:C

19、设int a=10,b; ,执行下列语句后,b的值不是2的是( )。

A、b=a/4
B、b=a-8
C、b=a/4.0
D、b=a%4参考答案:C

20、putchar() 函数可以向终端输出一个( )。

A、整型
B、实数
C、字符串
D、字符

参考答案:D

第四章测试

1、表示关系x≤y≤z的c语言表达式为( )。

A、(x<=y)&&(y<=z)
B、(x<=y)AND(y<=z)
C、(x<=y<=z)
D、(x<=y)&(y<=z)

参考答案:A

2、若a=5;b=6;c=7;d=8;m=2;n=2;则执行 (m=a>b)&&(n=c>d)后,m和n的值分别为( )。

A、2 ,2
B、0,2
C、0,0
D、2.0参考答案:B

3、在以下一组运算符中,优先级最高的运算符是( )。

A、<=
B、=
C、%
D、&&

参考答案:C

4、若有int x,a,b;则下面if语句中,( )是错误的。

A、if (a=b) x=x+1;
B、if (a<>b) x=x+1;
C、if (a-b) x=x+1;
D、if (x) x=x+1;

参考答案:B

5、下列表达式中,( )不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。

A、x%2==0
B、!x%2!=0
C、(x/2*2-x)==0
D、!(x%2)

参考答案:B

6、关于以下程序,正确的说法是( )。 #include <stdio.h> int main(void) {int x=0,y=0,z=0; if(x=y+z) printf("***"); else printf("###"); return(0); }

A、有语法错误,不能通过编译
B、输出:***
C、可以编译,但不能通过连接,所以不能运行
D、输出:###

参考答案:D

7、下列程序的输出结果是( )。 #include <stdio.h> int main(void) { float x=4,y=1; if(x<0) y=0; else if(x<10) y=1/x; else y=10; printf("%f\n",y); return(0); }

A、0.000000
B、10.000000
C、0.250000
D、1.000000参考答案:C

8、执行以下程序时,若输入3和4,则输出结果是( )。 #include <stdio.h> int main(void) { int a,b,s; scanf("%d%d",&a,&b); s=a; if(a<b) s=b; s=s*s; printf("%d\n",s); return(0); }

A、14
B、16
C、18
D、20参考答案:B

9、下列程序的输出结果是( )。 #include <stdio.h> int main(void) { int x=1,a=0,b=0; switch(x) { case 0: b=b+1; case 1: a=a+1; case 2: a=a+1;b=b+1; } printf("a=%d,b=%d\n",a,b); return(0); }

A、a=2,b=1
B、a=1,b=1
C、a=1,b=0
D、a=2,b=2参考答案:A

10、若有定义:int a=3,b=2,c=1; 并有表达式:①a%b、②a>b>c、③b&&c+1、④c+=1,则表达式值相等的是( )。

A、①和②
B、②和③
C、①和③
D、③和④

参考答案:C

11、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( )。 if(a<b) if(c<d) x=1; else if(a<c) if(b<d) x=2; else x=3; else x=6; else x=7;

A、1
B、2
C、3
D、4参考答案:B

12、在下面的条件语句中(其中S1和S2表示C语言语句),只有一个在功能上与其他3个语句不等价( )。

A、if(a) S1; else S2;
B、if(a==0) S2; else S1;
C、if(a!=0) S1; else S2;
D、if(a==0) S1; else S2;

参考答案:D

13、若有int a=3,b; 则执行下面程序段后b的值是( ) if(a>0) b=1; else b=-1; b=b+1;

A、1
B、2
C、-1
D、0参考答案:B

14、假定所有变量均已正确定义,下面程序段执行后的x的值是( )。 a=b=0; x=35; if(!a) x=x-1; if(b) x=3; else x=4;

A、34
B、4
C、35
D、3参考答案:B

15、若有说明语句int i=4, j=5, k=6; float f; 则执行f=( i>k)?i:(j<k)?j:k;语句后,f的值为( )。

A、4.0
B、5.0
C、6.0
D、7.0参考答案:B

16、下述程序的输出结果是( ) #include <stdio.h> int main (void) { int a=0,b=0,c=0; if((a+1)>0 ||(b>0)) c=c+1; printf("%d,%d,%d",a,b,c); return(0); }

A、0,0,0
B、1,1,1
C、1,0,1
D、0,0,1参考答案:D

17、若x=0,则执行下面程序段后,屏幕上会显示( )。 if(x=0) printf("***"); else printf("&&&");

A、*** ***
B、&&&
C、***&&&
D、&&&***

参考答案:B

18、若有int a=10,b=20,c=30; ,执行下面程序段后a、b、c的值分别是()。 if(a>b) c=a; a=b; b=c;

A、10、20、30
B、20、10、10
C、20、30、30
D、20、10、30参考答案:C

19、下列程序的输出结果是( )。 #include <stdio.h> int main(void) { int k=8; switch(k) { case 7:k+=1; case 8:k+=1; case 9:k+=1;break; default:k+=1; } printf("%d\n",k); return(0); }

A、8
B、9
C、10
D、11参考答案:C

20、若有float x; int a,b; ,下面四条switch语句中正确的有( )条。 switch(x) { case x=1.0: printf(“Y”); case x=2.0: printf(“N”); } switch(a) { case a=1: printf(“Y”); case a=2: printf(“N”); } switch(b) { case b==1: printf(“Y”); case b==2: printf(“N”); } switch(x) { case 1.0: printf(“Y”); case 2.0: printf(“N”); }

A、1
B、2
C、3
D、4参考答案:A

第五章测试

1、以下程序段中while循环执行的次数是( )。 int k=0; while(k=1) k++;

A、无限次
B、有语法错不能执行
C、一次也不执行
D、执行一次

参考答案:A

2、以下描述中正确的是( )。

A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B、do-while循环中由do开始,用while 结束,在while (表达式)后面不能写分号
C、在do-while循环中,循环体至少执行一次
D、do-while循环中,根据情况可以省略while

参考答案:C

3、在C语言中有关for循环,以下正确的说法是( )。

A、for循环只能用于循环次数已经确定的情况
B、for循环是先执行循环体语句,后判断表达式
C、在 for循环不能break跳出循环体
D、for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来

参考答案:D

4、以下下面程序的运行结果是( )。 #include <stdio.h> int main() { int a=1,b=2,c=2,t; while(a<b<c) {t=a;a=b;b=t; c--; } printf(“%d,%d,%d”,a,b,c); }

A、1,2,0
B、2,1,0
C、1,2,1
D、2,1,1参考答案:A

5、若i,j已定义为int类型,则以下

剩余70%内容付费后可查看
看完了?还不过瘾?点此向作者提问