第一单元数据类型、运算符与表达式、顺序结构

【单元测验1】数据类型、运算符与表达式、顺序结构

1、单选题:
‏字符串"Hello,world!"在内存中占用的字节数是(    )。‏
选项:
A: 13
B: 12
C: 14
D: 15
答案: 【 13

2、单选题:
‌下列(   )是C语言中的合法常量。‎
选项:
A: '45'
B: 08
C: e1
D: 1.0e0.5
答案: 【 '45'

3、单选题:
‏设有int a=2,则a+=a/=a*a的值是(   )。​
选项:
A: 0
B: 0.5
C: 1
D: 1.0
答案: 【 0

4、单选题:
‍若有定义#define T 8和int a,b;,下面正确的表达式是(   )。‏
选项:
A: 21+'a'
B: ++b--
C: a+2++
D: T++
答案: 【 21+'a'

5、单选题:
‍C语言中,运算对象必须是整型数的运算符是(    )。‏
选项:
A: %
B:
C: % 和
D: /
答案: 【 %

6、单选题:
‎以下能正确地定义整型变量a、b和c,并为它们赋初值5的语句是(     )。‌
选项:
A: int a=5,b=5,c=5;
B: int a=b=c=5;
C:  int a,b,c=5;
D: a=5,b=5,c=5;
答案: 【 int a=5,b=5,c=5;

7、单选题:
‎int a=1,b=2,c;‎‎c=1.0/b*a;‎‎执行后变量c中的值是(      )。‎‎‎
选项:
A: 0
B: 0.5
C: 1
D: 2
答案: 【 0

8、单选题:
‌如果变量 x、y 已经正确定义,下列哪个选项的语句不能正确将x、y的值进行交换?‍
选项:
A: x=t, t=y, y=x;
B: x=x+y, y=x-y, x=x-y;
C: t=x, x=y; y=t;
D: t=y, y=x, x=t;
答案: 【 x=t, t=y, y=x;

9、单选题:
‍若变量已正确定义并赋值,符合C语言语法的表达式是(    )。‌
选项:
A: a = 3 , 5
B: a = 2 ++
C: a = a + 1 = 3
D: 12.3 % 4
答案: 【 a = 3 , 5

10、单选题:
‏若变量已正确定义,表达式 ( j=3, j++) 的值是____。‏
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 3

11、单选题:
​下列叙述中错误的是(   )。‌
选项:
A: 计算机可以直接运行扩展名为c的文件。
B: 扩展名为obj的文件不能直接运行。
C: 连接是指将扩展名为obj的文件,经连接程序生成扩展名为exe可执行文件的操作。
D: 连接是指将扩展名为obj的文件,经连接程序生成扩展名为exe可执行文件的操作。
答案: 【 计算机可以直接运行扩展名为c的文件。

12、单选题:
‌下列各种数制的数中,最大的数是(    )。‏
选项:
A:

B:

C:

D:

答案: 【 

13、单选题:
‎一个字长为8位的无符号二进制数能表示的十进制数值范围是(    )。‌
选项:
A: 0~255
B: 1~255
C: 1~256
D: 0~256
答案: 【 0~255

14、单选题:
‎下列语句中, (   ) 将输出%d。​
选项:
A: printf("%%d");
B: printf("%d");
C: printf("%d");
D: printf("%%%d");
答案: 【 printf("%%d");

15、单选题:
‌若a是整型变量,c是单精度实型变量,输入语句(      )是错误的。​
选项:
A: scanf("%d%f", a, c);
B: scanf("%d,%f", &a, &c);
C: scanf("d=%d, c=%f", &a, &c);
D: scanf("%d%f", &a, &c);
答案: 【 scanf("%d%f", a, c);

16、单选题:
‍若变量已正确定义并赋值,不符合C语言语法的表达式是(    )。​
选项:
A: a + b = 3
B: a + b ++
C: a = 3 , 5
D: 12 % 4
答案: 【 a + b = 3

17、单选题:
‌假设所有变量均为整型,则表达式(a = 2, b = 5, b++, a+b )的值是(   )。‌
选项:
A: 8
B: 7
C: 6
D: 2
答案: 【 8

18、填空题:
‎设有int x, a;,则执行a=(x=1, x++, x+2)后,a的值为(  )。‎
答案: 【 4

19、填空题:
​设a已定义为整型变量,a=12,写出表达式 a /= a + a 运算后 a 的值(  )。‏​‏
答案: 【 0

20、填空题:
‎设a已定义为整型变量,a=12, 写出表达式 a + = a - = a * = a 运算后 a 的值(  )。‌
答案: 【 0

21、填空题:
‏设x=2.5, a=7, y=4.7,算术表达式 x + a % 3 * (int)(x+y) % 2 / 4的值为(   )。‍
答案: 【 2.5

第二单元选择结构

【单元测验2】选择结构

1、单选题:
‎判断 i 和 j 至少有一个值为非0的表达式是(    )。​
选项:
A: i | | j
B: i != 0 && j != 0
C: i+j !=0
D: i && j
答案: 【 i | | j

2、单选题:
‌分析下面程序片段,下面输出结果正确的是(    )。​int a,b,c;int x=8,y=10;a=(++x==--y)?--x:++y;b=x++;c=++y;printf("a=%d,b=%d,c=%dn",a,b,c);
选项:
A: a=8,b=8,c=10
B: a=8,b=9,c=10
C: a=9,b=8,c=10
D: a=8,b=8,c=9
答案: 【  a=8,b=8,c=10

3、单选题:
分析下面程序片段,下面输出结果正确的是(    )。‏‏‌‌‏‏int a=0,b=0,c=1;c=a++&&(b=1);printf("a=%d,b=%d,c=%dn",a,b,c);
选项:
A: a=1,b=0,c=0
B: a=1,b=1,c=0
C: a=1,b=0,c=1
D: a=1,b=1,c=1
答案: 【 a=1,b=0,c=0

4、单选题:
‌对于 int x=10, y=100; 以下逻辑表达式的值为0的是(     )。‏
选项:
A: ( x > 100 | | y < 10 ) && y == 100
B: ( x > 0 && y > 0 ) | | x < 100
C: ( x > 10 | | y > 10 ) && x == 10
D: x > 100 | | y < 10 | | y > 10
答案: 【 ( x > 100 | | y < 10 ) && y == 100

5、单选题:
‏‎设i、j、和k是 int 型变量,且i = 3, j = 4, k = 5,则以下值为0的表达式是(     )。‎
选项:
A:  ! ( ( i < j ) && ! k || 1 )
B:  'i' && 'j'
C:  i <= j
D:  i || j + k && j - k
答案: 【  ! ( ( i < j ) && ! k || 1 )

6、单选题:
执行以下程序段后的b的值是(      )。‍‍‌‌‍‍int a=5,b=6,c=1,x=2,y=3,z=4;c=(a=c>x)&&(b=y>z);
选项:
A: 6
B: 0
C: 1
D: 5
答案: 【 6

7、单选题:
‏对条件表达式(M)?(a++):(a--)来说,其中表达式 M 等价于(      )。‏
选项:
A: M != 0
B: M == 0
C: M == 1
D: M != 1 
答案: 【 M != 0

8、单选题:
‎‌能正确表示关系x≤y≤z的C语言表达式为(     )。‌
选项:
A: ( x <= y ) && ( y <= z )
B: ( x <= y ) AND ( y<= z )
C: ( x <= y <= z )
D: ( x <= y ) & ( y <= z ) 
答案: 【 ( x <= y ) && ( y <= z )

9、单选题:
​‏若变量x、y都为float型数,以下表达式中不能正确表示数学关系|x-y|<10的是(     )。‏
选项:
A: ( x - y ) < -10 | | ! ( y - x ) > 10
B: fabs ( x - y ) < 10
C: x - y > -10 && x - y < 10
D: ( x - y ) * ( x - y ) < 100
答案: 【 ( x - y ) < -10 | | ! ( y - x ) > 10

10、单选题:
以下程序段运行后的输出结果是(      )。​​‌‌​​   int x=1,y=0;   if(!x) y++;   else if(x==0)   if (x) y+=2;   else y+=3;   printf("%dn",y);
选项:
A: 0
B: 3
C: 2
D: 1
答案: 【 0

11、单选题:
以下程序段运行后的输出结果是(     )。​​‏‏​​int a=0,b=0,c=0,d=0;if(a=1) b=1; c=2;else d=3;printf("%d,%d,%d,%d",a,b,c,d);
选项:
A: 编译有错
B: 1,1,2,0
C: 0,0,0,3
D: 0,1,2,0
答案: 【 编译有错

12、单选题:
有如下嵌套的if语句‏‏if(a<b)    if(a<c) k=a;   else k=c;else     if(b<c) k=b;   else k=c;‎以下选项中与上述语句等价的语句是(      )。‏‎‏
选项:
A: k = ( a < b ) ? ( ( a < c ) ? a : c ) : ( ( b < c ) ? b : c ) ;
B: k = ( a < b ) ? ( ( b < c ) ? a : b ) : ( ( b > c ) ? b : c ) ;
C: k = ( a < b ) ? a : b ; k=  ( b < c ) ? b : c ;
D: k = ( a < b ) ? a : b ; k = ( a < c ) ? a : c ;
答案: 【  k = ( a < b ) ? ( ( a < c ) ? a : c ) : ( ( b < c ) ? b : c ) ;

13、单选题:
有以下程序段运行时从键盘输入9<回车>, 则输出结果是(     )。​​‎‎​​ int a; scanf("%d",&a); if(a++<9) printf("%dn",a); else printf("%dn",a+1);
选项:
A: 11
B: 8
C: 9
D: 10
答案: 【 11

14、单选题:
若有定义:‏float x=1.5;‏int a =1,b=3,c=2;‏则正确的switch语句是(           )。‏
选项:
A: switch(a+b){ case 1: printf("*n"); case 2+1: printf("**n");}
B: switch((int)x);{ case 1: printf("*n");  case 2: printf("**n");}
C: switch(x){ case 1.0: printf("*n");  case 2.0: printf("**n");}
D: switch(a+b){ case 1: printf("*n");  case c: printf("**n");}
答案: 【 switch(a+b){ case 1: printf("*n"); case 2+1: printf("**n");}

15、单选题:
‌下列叙述中正确的是(      )。​
选项:
A: 在switch语句中,不一定使用break语句。
B: 在switch语句中必须使用default。
C: break语句必须与switch语句中的case配对使用。
D: break 语句只能用于switch语句。
答案: 【 在switch语句中,不一定使用break语句。

16、填空题:
有定义:int a = 3, b = 4, c = 5 ;‌则表达式 a || b + c && b - c 的值为________。‌
答案: 【 1

17、填空题:
‌表达式:a=1||a>b+5||a<1 的值是______ 。‌
答案: 【 1

18、填空题:
‍ float a,b;  scanf("%f",&a); if(a<0.0) b=0.0; else if((a<0.5)&&(a!=2.0)) b=1.0/(a+2.0); else if(a<10.0) b=1.0/a; else b=10.0; printf("%fn",b);​‍若以上程序段运行时输入为2.0(回车), 则上面程序的输出结果是         。‍
答案: 【 0.500000

19、填空题:
执行以下代码段后,y的值为         。‌‌‏‏‌‌float x=2,y;if(x<0) y=0;else if(x<10) y=1.0/10;else y=1;
答案: 【 0.1##%_YZPRLFH_%##0.100000

20、填空题:
当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;
答案: 【 2

第三单元循环结构

【单元测验3】循环结构

1、单选题:
下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择什么填空(  )? ‏‏‍‍‏‏int main(){    int m=0,n=0;    char c;    while ((_______) !='n') {        if(c>='A' && c<='Z') m++;        if(c>='a' && c<='z') n++;    }    printf("%d %d",m,n);    return 0;}
选项:
A: c=getchar( )
B: getchar( )
C: c==getchar( )
D: scanf("%c",&c)
答案: 【 c=getchar( )

2、单选题:
以下程序段运行时,若输入1 2 3 4 5 0<回车>,输出结果是(   )?‍‍‍‍‍‍   int s;   scanf("%d",&s);   while(s>0) {      switch(s) {      case 1:printf("%d",s+5);      case 2:printf("%d",s+4); break;      case 3:printf("%d",s+3);      default:printf("%d",s+1); break;      }     scanf("%d",&s);  }
选项:
A: 6566456
B: 66656
C: 66666
D: 6666656
答案: 【 6566456

3、单选题:
‏‍执行while(表达式)循环的条件是?(  )‍
选项:
A: 当表达式的值为非0时
B: 当表达式的值为0时 
C: 仅当表达式的值为1时
D: 当表达式的值不为1时
答案: 【 当表达式的值为非0时

4、单选题:
下面程序段的输出结果是(  )? ‏‏‏‏‏‏ int n=9; while(n>6){    n--;    printf("%d",n); }
选项:
A: 876
B: 987
C: 8765
D: 9876
答案: 【 876

5、单选题:
‏‏以下描述中正确的是?(  ) ‏
选项:
A: 在do-while循环中,是先执行一次循环体,再进行判断
B: 由于do-while的循环体只能有一条语句,所以循环体内不能使用复合语句
C: do-while由do开始,用while结束,在while(表达式)后面不能写分号
D: 在do-while循环中,根据情况可以省略while
答案: 【 在do-while循环中,是先执行一次循环体,再进行判断

6、单选题:
‎‌语句for (表达式1;  ; 表达式3)等价于?(  )‌
选项:
A: for ( 表达式1; 1 ; 表达式3 )
B: for ( 表达式1; 0 ; 表达式3 )
C: for ( 表达式1; 表达式1; 表达式3 )
D: for ( 表达式1; 表达式3; 表达式3 )
答案: 【 for ( 表达式1; 1 ; 表达式3 )

7、单选题:
‏以下不会构成死循环的语句或语句组是?(  )‎
选项:
A: n=0; do{   ++n;}while(n<=0);
B: n=0; while(1)   { n++; }
C: n=10; while(n);   { n--; }
D: for( n=0,i=1; ;i++ )    n+=i;
答案: 【 n=0; do{   ++n;}while(n<=0);

8、单选题:
以下程序段的循环次数是?(  )    ​​‌‌​​for(i=2;i==0;)           printf("%d",i--);
选项:
A: 0次
B: 无限次
C: 1次
D: 2次
答案: 【  0次

9、单选题:
‌​若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是哪一个?(  )​
选项:
A: for(i=1;i<=5;i++)  { p=1; p*=i; }
B: for(i=1,p=1;i<=5;i++)   p*=i;
C: i=1;p=1; while(i<=5)   { p*=i; i++; }
D: i=1;p=1; do{   p*=i; i++;} while(i<=5);
答案: 【 for(i=1;i<=5;i++)  { p=1; p*=i; }

10、单选题:
若有以下程序段,正确的描述是什么?(  ) ‎‎‍‍‎‎for(m=1; m<=100; m++){   scanf("%d", &y);  if(y<0)    continue;    printf("%3d", m);}
选项:
A: 最多允许输出100个非负整数
B: 当y<0时整个循环结束
C: y>=0时什么也不输出
D: printf函数永远也不执行
答案: 【 最多允许输出100个非负整数

11、单选题:
下面程序段执行后,n的值是(  )。  ‌‌‏‏‌‌  int i, n=0;  for(i=2; i<5 ; i++) {     do {        if(i%3) continue;       n++;     } while(!i);     n++;  }
选项:
A: 4
B: 5
C: 2
D: 3
答案: 【 4

12、单选题:
以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序执行后的运行结果不正确,调试中发现有一条语句在程序中的位置不正确,这条语句是哪一条?(  )‏int main(){    int n,k;    float score,sum,ave;    sum=0.0;    for(n=1; n<10; n++) {        for(k=1; k<=4; k++) {            scanf("%f", &score);            sum+=score;        }        ave=sum/4.0;;        pr

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注