把筹畏崩点谢性苔涂床静门挂
第1章 C语言概述 第1章C语言概述测验
1、 C语言程序的基本单位是( )。
答案: 函数
2、 下列各选项中,合法的c语言关键字是( )。
答案: void
3、 C语言的程序一行写不下时,应该( )。
答案: 用回车符换行
4、 下列叙述不正确的是( )
答案: 在C程序中,无论是整数还是实数,都能正确无误地表示
5、 以下选项中正确的整型常量是( )。
答案: -80
6、 在C程序中,可以作为用户标识符的一组标识符是( )。
答案: as_b3_224Else
7、 下列不合法的十六进制数是( )
答案: oxff
8、 在c语言中,下列合法的字符常量是( )
答案: ‘\x76’
9、 以下选项中合法的用户标识符是( )
答案: _243
10、 ( )是构成c语言程序的基本单位
答案: 函数
11、 一个C语言程序总是从( )开始执行
答案: 主函数
12、 以下叙述不正确的是( )
答案: 在C程序中,注释说明只能位于一条语句的后面
13、 C语言规定:在一个源程序中,main()函数的位置( )
答案: 可以任意
14、 以下叙述正确的是( )
答案: C语言本身没有输入输出语句
15、 在C语言中,数字O29是一个()
答案: 非法数
16、 C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符( )
答案: 必须为字母或下划线
17、 以下说法中正确的是( )
答案: C语言程序总是从main()函数开始执行
18、 C语言可执行程序的开始执行点是( )
答案: 程序中的main函数
19、 一个C程序的执行是从( )
答案: 本程序的main函数开始,到main函数结束
20、 以下叙述正确的是( )
答案: C语言本身没有输入输出语句
21、 以下叙述不正确的是
答案: 在C程序中,注释说明只能位于一条语句的后面
22、 以下叙述中错误的是__。
答案: C语言编写的每个函数都可以进行独立的编译并执行
23、 以下叙述中正确的是
答案: C程序书写格式自由,一个语句可以写在多行上
24、 以下叙述中正确的是__。
答案: 简单C语句必须以分号结束
25、 以下关于C语言的叙述中正确的是
答案: C语言中的注释不可以夹在变量名或关键字的中间
26、 有以下程序段#include “stdio.h”void main(){ …while(getchar()!=”); … }以下叙述中正确的是
答案: 当执行此while语句时,只有按回车键循环才能停止
27、 若有以下定义和语句char s1[10]=”abcd!”,*s2=”123\”;printf(“%d %d”,strlen(s1),strlen(s2));则输出结果是
答案: 5 5
28、 计算机能直接执行的程序是__。
答案: 可执行程序
29、 以下叙述正确的是
答案: C语言函数可以嵌套调用,例如:fun(fun(x))
30、 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是
答案: C语言程序仅可以编译执行
31、 以下叙述中错误的是
答案: 在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
32、 以下叙述中错误的是
答案: C程序在运行过程中所有计算都以十进制方式进行
33、 下列叙述中错误的是
答案: 一个C语言程序只能实现一种算法
34、 下列叙述中正确的是
答案: 每个C语言程序中都必须要有一个main()函数
35、 以下叙述中错误的是
答案: 使用三种基本结构构成的程序只能解决简单问题
36、 以下叙述中正确的是
答案: C语言规定必须用main作为主函数名,程序从此开始执行,在此结束
37、 以下叙述中错误的是
答案: C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
38、 以下叙述中错误的是
答案: 空语句出现在任何位置都不会影响程序运行
39、 C语言函数返回类型的默认定义类型是void
答案: 错误
40、 C语言的书写格式不会影响程序的可读性。
答案: 错误
41、 C语言是一种非结构化程序设计语言。
答案: 错误
42、 C语言程序在书写上只能是一条语句写一行。
答案: 错误
43、 C语言是一种具有某些低级语言特征的高级语言。
答案: 正确
44、 C语言程序中可以有多个函数,但只能有一个主函数。
答案: 正确
45、 C语言程序实现与其他高级语言一样也要经过编辑、编译连接和运行这样的三步曲。
答案: 正确
46、 下划线是标识符中的合法字符。
答案: 正确
47、 C语言的应用比较广泛,不仅可用来编写应用软件,而且可用来编写系统软件。
答案: 正确
第2章 简单的C程序设计 第2章简单的C程序设计测验
1、 以下说法中正确的是()
答案: #define和printf都不是C语句
2、 以下程序段的输出结果是()int a=1234; printf(“%2d”,a);
答案: 1234
3、 若有说明语句:int a,b,c,d=&c; 则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是( )
答案: scanf(“%d%d%d”,&a,&b,d);
4、 以下合法的赋值语句是()
答案: d–;
5、 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是()printf(“%d,%d”,x–,–y);
答案: 10,2
6、 以下程序的输出结果是( )#include<stdio.h>void main(){ int a=3;printf(“%d”,(a+=a-=a*a));}
答案: -12
7、 以下程序的输出结果是( )#include<stdio.h>void main(){ char c=’z’;printf(“%c”,c-25);}
答案: a
8、 以下程序的输出结果是 ( ) #include<stdio.h>void main(){int a=5,b=4,c=6,d;printf(“%d”,d=a>b(a>ca:c):(b));}
答案: 6
9、 以下程序的输出结果是( )#include<stdio.h>void main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf(“%d”,d);}
答案: 1
10、 以下程序段的输出结果是( )char s[]=”\141\141abc\t”;printf (“%d”,strlen(s));
答案: 9
11、 下列程序执行后的输出结果是( )#include<stdio.h>void main(){ int x=’f’;printf(“%c “,’A’+(x-‘a’+1));}
答案: G
12、 下列程序执行后的输出结果是( )#include<stdio.h>void main(){char x=0xFF;printf(“%d “,x–);}
答案: -1
13、 语句printf(“a\bre’hi’y\\bou”);的输出结果是( ) (说明:’\b’是退格符)
答案: re’hi’you
14、 有以下程序#include<stdio.h>void main(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);} 输出结果是( )
答案: 2,1
15、 下列选项中,不正确的赋值语句是()
答案: k=1=j;
16、 以下程序的输出结果( )#include<stdio.h>void main(){int i=010,j=10;printf(“%d,%d”,++i,j–);}
答案: 9,10
17、 请选出以下语句的输出结果( )printf(“%d”,strlen(“\t\ 065\xff”))
答案: 4
18、 请读程序 int i =65536; printf(“%d”,i);上面程序的输出结果是()
答案: 0
19、 已知字符A的ASCII码为十进制的65,下面程序的输出是( )#include<stdio.h>void main(){char ch1,ch2;ch1=’A’+’5′-‘3′;ch2=’A’+’6’-‘3’;printf(“%d,%c”,ch1,ch2);}
答案: 67,D
20、 若有定义和语句:char s[10];s=”abcd”;rintf(“%d”,s)则结果是()
答案: 编译不能通过
21、 下面程序的输出是( )#include<stdio.h>void main(){ int k=11;printf(“k=%d,k=%o,k=%x”,k,k,k);}
答案: k=11,k=13,k=b
22、 若有以下定义和语句:int u=010,v=0x10,w=10;printf(″%d,%d,%d″,u,v,w);则输出结果是()
答案: 8,16,10
23、 以下定义和语句:char cl=’b’,c2=’e’;printf(″%d,%c″,c2-c1,c2-‘a’+’A’);则输出结果是()
答案: 3,E
24、 设x为int型变量,则执行以下语句后,x的值为()x=10; x+=x-=x-x;
答案: 20
25、 以下程序的输出结果是 ( )#include<stdio.h>void main(){int a=12,b=12;printf(“%d%d”,–a,++b);}
答案: 11 13
26、 以下程序的输出结果是( )#include<stdio.h>void main(){int k=17;printf(“%d,%o,%x “,k,k,k);}
答案: 17,21,11
27、 下面程序的输出是( )#include<stdio.h>void main(){ int x=023;printf(“%d”,–x); }
答案: 18
28、 以下程序的输出结果是( )#include<stdio.h>void main(){char str[12]={‘s’,’t’,’r’,’i’,’n’,’g’};printf(“%d”,strlen(str));}
答案: 6
29、 下列程序的输出结果是 ( )#include<stdio.h>void main(){double d=3.2;int x,y; x=1.2,y=(x+3.8)/5.0; printf(“%d “, d*y);}
答案: 0
30、 语句:printf(“%d “,12&&12);的输出结果是()
答案: 1
31、 以下叙述中正确的是()
答案: 当输入数据时,必须指明变量地址,例如:scanf(“a=%d”,&a);
32、 设有int I=10,j=10;则printf(“%d,%d”,++I,j–)的输出是()
答案: 11, 10
33、 设A=3,B=4,执行 printf(“%d,%d”,(A,B),(B,A));”的输出是()
答案: 4,3
34、 若有定义和语句: char s[10];s=″abcd″;printf(″%s″,s); 则结果是( )(以下μ代表空格)
答案: 编译不通过
35、 以下程序的输出结果是 ( )#include<stdio.h>void main(){ int k=17;printf(“%d,%o,%x “,k,k,k);}
答案: 17,21,11
36、 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是()
答案: (a=c)&&(b=c);
37、 下面哪个是C语言中的正确赋值语句()
答案: i++;
38、 执行下列程序段 float f; int i; scanf(“%3d%4d%f”,&i,&f); 输入为12345678765.43,则赋值结果为( )
答案: i=123,f=8765.43
39、 执行程序段char str[20]={‘a’,’b’,’c’,’\o’}; int len=strlen(str); 变量len的值为( )
答案: 4
40、 以下程序的输出结果是( )#include<stdio.h>void main(){ int a=12,b=12;printf(“%d%d”,–a,++b);}
答案: 11 13
41、 有以下程序#include<stdio.h>void main(){int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);} 输出结果是( )
答案: 2,1
42、 下面程序的输出是( )#include<stdio.h>void main(){ int a=-1,b=4,k;k=(a++<=0)&&(!(b–<=0));printf(“%d%d%d%”,k,a,b);}
答案: 1 0 3
43、 下面程序的输出是( )#include<stdio.h>void main(){ char p1[10] =”abc”, p2[] =”ABC”;printf(“%s”, strcat(p1,p2));}
答案: abcABC
44、 已知字母A的ASCⅡ码为十进制的65,下面程序的输出是( )#include<stdio.h>void main(){ char ch1,ch2;ch1=’A’+’5′-‘3′;ch2=’A’+’6’-‘3’;printf(“%d,%c”,ch1,ch2);}
答案: 67,D
45、 下面程序的输出是( )#include<stdio.h>void main(){ int x=10,y=3;printf(“%d”,y=x/y);}
答案: 3
46、 若执行下面的程序时从键盘上输入3和4,则输出是( )#include<stdio.h>void main(){int a,b,s; a=3,b=4;scanf(“%d%d”,&a,&b);s=a+b; printf(“%d”,s–);printf(“%d,–s);}
答案: 7,5
47、 执行下面程序中输出语句后,a的值是( )#include<stdio.h>void main(){int a;printf(“%d”,(a=35,a4,a+5));}
答案: 15
48、 下列程序执行后的输出结果是( )#include<stdio.h>void main(){ int x=’f’;printf(“%c “,’A’+(x-‘a’+1));}
答案: G
49、 以下程序运行后,输出结果是( )#include<stdio.h>void main(){ char s[]=”abcde”;s+=2;printf(“%ld”,s);}
答案: 出错
50、 若有以下定义和语句:char s1[]=″12345″,s2[]=″1234″;printf(″%d″,strlen(strcpy(s1,s2)));则输出结果是( )
答案: 4
51、 以下程序的输出结果是( )#include<stdio.h>void main(){ int a=12,b=12;printf(“%d %d”,–a,++b);}
答案: 11 13
52、 已知字母A的ASCⅡ码为十进制的65,下面程序的输出是( )#include<stdio.h>voidmain(){charch1,ch2;ch1=’A’+’5′-‘3′;ch2=’A’+’6’-‘3′;printf(“%c,%c”,ch1,ch2);}
答案: C,D
53、 若执行下面的程序时从键盘上输入3和4,则输出是( )#include<stdio.h>void main(){ int a,b,s;a=3,b=4;scanf(“%d%d”,&a,&b);s=a+b;printf(“%d”,s–);printf(“%d,–s);}
答案: 7,5
54、 执行下面程序中输出语句后,a的值是 ( )#include<stdio.h>void main(){int a;printf(“%d”,(a=35,a4,a+5));}
答案: 15
55、 请读程序片段(字符串内没有空格字符):printf(“%d”, strlen(“ATS012\1\”));上面程序片段的输出结果是( )
答案: 9
56、 设有如下定义: int x=10,y=3,z; 则语句printf(“%d”,z=(x%y,x/y)); 的输出结果是()
答案: 3
57、 以下程序的输出结果是( )#include<stdio.h>int main(){ int x=10,y=10; printf(“%d %d”,x–,–y); return 0;}
答案: 10 9
58、 以下程序的输出结果是( ) #include<stdio.h>int main(){ int x=10 ,y=10; printf(“%d,%d”,x–,–y); return 0;}
答案: 10,9
59、 若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段: printf(“%d”,(X,Y)); 上面程序片段的输出结果是()
答案: 200
60、 请读程序:#include<stdio.h>voidmain(){intA; floatB,C;scanf(“%2d%3f%4f”,&A,&B,&C);printf(“A=%d,B=%f,C=%f”,A,B,C);}若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是( )
答案: A=98,B=765.000000,C=4321.000000
第3章 选择结构程序设计 第 3 章 关系运算、逻辑运算测验
1、 能正确表示a和b同时为正或同时为负的表达式是( )
答案: ab>0
2、 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2, 则逻辑表达式(m=a > b)&&(n=c > d)运算后,n的值为()
答案: 2
3、 逻辑运算符两侧运算对象的数据类型()
答案: 可以是任何类型的数据
4、 已知x=43,ch=’A’,y=0;则表达式(x > = y&&ch < ‘B’&&!y)的值是()
答案: 1
5、 设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a > b)&&(n=c > d)后n的值是()
答案: 2
6、 判断char型变量cl是否为小写字母的正确表达式是()
答案: (cl>=’a’)&&(cl<=’z’)
7、 若有条件表达式 (exp)a++:b–,则以下表达式中能完全等价于表达式(exp)的是()
答案: (exp!=0)
8、 表示关系X < =Y < =Z的C语言表达式为()
答案: (X < =Y)&&(Y < =Z)
9、 为表示关系x ≥ y ≥ z,应使用C语言表达式()
答案: (x > =y)&&(y > =z)
10、 设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a > b)&&(n=c > d)后,n的值为()
答案: 2
11、 为表示关系X≥Y≥Z应使用C语言表达式()
答案: (X > =Y)&&(Y > =Z)
12、 设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式的值为0的是()
答案: !((a < b)&&!c||1)
13、 为表示关系x≥y≥z,应使用C语言表达式()
答案: (x > =y)&&(y > =z)
14、 设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d)后,n的值为()
答案: 2
15、 判断字符型变量x是否是大写字母的正确的表达式()
答案: (x>=’A’)&&(x<=’Z’)
16、 C语言的对语句中用作判断的表达式一般为()
答案: 逻辑表达式和关系表达式
17、 C语言中的逻辑表达式值为真相当于值( )
答案: 1
18、 在C语言中,逻辑值”真”用( )表示
答案: 非0的数
19、 能正确表示逻辑关系:”a ≥ =10或a ≤ 0″的C语言表达式是()
答案: a < =0 || a>=10
第3章 选择结构程序设计 第 3 章 选择结构测试
1、 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()
答案: a!=0
2、 以下程序输出结果是( )#include< stdio.h > voidmain() {intm=5;if(m++>5)printf(“%d”,m);elseprintf(“%d”,m–);}
答案: 6
3、 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( )#include<stdio.h> void main() { int x; scanf(“%d”,&x); if(x + + >5) printf(“%d”,x); else printf(“%d”,x – -); }
答案: 7和5
4、 若变量都已经说明,则以下程序段输出为( ) a=10;b=50;c=30; if (a > b) a=b; b=c;c=a; printf(“a=%db=%dc=%d”,a,b,c);
答案: a=10 b=30 c=10
5、 为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的 else总是与()组成配对关系。
答案: 其上面距它最近的,并且没有其他else与其配对的if相配对
6、 以下程序的输出结果是 ( )#include<stdio.h> void main() { int a= -1,b=1; if((++a < 0)&& ! (b– < =0)) printf(“%d %d”,a,b); else printf(“%d %d”,b,a); }
答案: 1 0
7、 若执行下面的程序从键盘输入3和4,则输出是( ) #include<stdio.h> void main() {int a,b,s; scanf(“%d%d”,&a,&b); s=a; if (a < b) s=b; s=s*s; printf(“%d”,s); }
答案: 16
8、 下面的程序是( )#include < stdio.h > voidmain() {intx=3,y=0,z=0; if(x==y+z)printf(“*”); elseprintf(“####”); }
答案: 输出####
9、 请读程序:#include < stdio.h> voidmain() {floatx,y;scanf(“%f”,&x);if(x<0.0)y=0.0elseif((x<5.0)&&(x!=2.0))y=1.0/(x+2.0);elseif(x<10.0)y=1.0/x;elsey=10.0;printf(“%f”,y);}若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是( )
答案: 0.500000
10、 请读程序: #include<stdio.h> void main() {int x=1,y=0,a=0,b=0; switch(x){ case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; } printf(“a=%d,b=%d”,a,b); } 上面程序输出结果是( )
答案: a=2,b=1
11、 执行下面语句后的输出为( ) int i= -1; if (i < =0) printf(“*”); else printf(“%%%%”);
答案: ***
12、 在执行以下程序时,为了使输出结果为t=4, 则给a和b输入的值应满足的条件是( )#include<stdio.h> void main() {int s,t,a,b; scanf(“%d,%d”,&a,&b); s=1; t=1; if(a < 0) s=s+1; if(a > b) t=s+1; else if(a= =b) t=5; else t=2*s; printf(“t=%d”,t); }
答案: a < b < 0
13、 若有定义: float w; int a, b; 则合法的switch语句是( )
答案: switch(b) { case 1: printf(““); case 2: printf(““); }
14、 判断两个字符串S1 和 S2 相等的正确语句是()
答案: if (strcmp(S1,S2)==0)
15、 下列语句正确的是( )
答案: if((a=b) > 0) temp=a;
16、 与 y=(x > 01:x < 0-1:0);的功能相同的if语句是()
答案: if(x > 0) y=1;else if(x < 0) y=-1;else y=0;
17、 若有定义: float w; int a, b; 则合法的switch语句是()
答案: switch(a+b){case 1: printf(““);case 2: printf(“*”);default: printf(“”);}
18、 有如下程序 #include<stdio.h> void main() {int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++; case 2: a++;b++;} printf(“a=%d,b=%d”,a,b);} 该程序的输出结果是()
答案: a=2,b=1
19、 有如下程序 #include<stdio.h> void main() { float x=2.0,y; if(x < 0.0) y=0.0; else if(x < 10.0) y=1.0/x; else y=1.0; printf(“%f”,y); } 该程序的输出结果是( )
答案: 0.500000
20、 有如下程序 main() { int a=2,b=-1,c=2; if(a < b) if(b<0) c=0; else c++; printf(“%d”,c);} 该程序的输出结果是( )
答案: 2
21、 若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是()
答案: switch(a-b){default:y=a*b;break;case 4:x=a+b;break;case 10:y=a-b;break;}
22、 阅读以下程序: #include<stdio.h> void main() {int x; scanf(“%d”,&x); if(x–<5) printf(“%d”’x); else printf(“%d”’x++); } 程序运行后,如果从键盘上输人5,则输出结果是( )
答案: 4
23、 若运行以下程序时,从键盘输入 ADescriptor < CR > ( < CR > 表示回车),则下面程序的运行结果是( )#include < stdio.h > void main() {char c; int v0=0,v1=0,v2=0; do{ switch(c=getchar()) { case ‘a’:case ‘A’: case ‘e’:case ‘E’: case ‘i’:case ‘I’: case ‘o’:case ‘O’: case ‘u’:case ‘U’:v1+=1; default:v0+=1;v2+=1; } }while(c!=”); printf(“v0=%d,v1=%d,v2=%d”,v0,v1,v2);}
答案: v0=12,v1=4,v2=12
24、 以下不正确的if语句形式是( )
答案: if(x!=y) scanf(“%d”,&x)else scanf(“%d”,&y);
25、 已知 int x=10,y=20,z=30;以下语句执行后x,y,z的值是( )if(x>y) z=x;x=y;y=z;
答案: x=20,y=30,z=30
26、 请阅读以下程序: #include<stdio.h> void main() {int a=5,b=0,c=0; if(a==b+c) printf(““); else printf(“$$$”); } 运行以上程序( )
答案: 输出$$$
27、 当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
28、 下列错误的语句是( )
答案: if(&&);a=m;
29、 当a=1、b=3、c=5、d=5时,执行下面的程序段后,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
30、 以下程序的输出结果是( )。 #include<stdio.h> void main() {int a=-1,b=1,k; if((++a<0)&&!(b–<=0)) printf(”%d,%d”,a,b); else printf(”%d,%d”,b,a); }
答案: 1,0
31、 下列关于switch语句和break语句的结论中,正确的是( )
答案: break的作用是跳出switch语句,接着执行后面的语句
32、 以下说法正确的是( )
答案: 在switch语句中可以根据需要使用或不使用break语句
33、 以下程序的运行结果是()。 #include <stdio.h>main(){ intk=2; switch(k) { case1:printf(”%d”,k++); break; case2:printf(”%d”,k++); case3:printf(”%d”,k++); break; case4:printf(”%d”,k++);}
答案: 2 3
34、 有如下程序 #include<stdio.h> void main(){int a=2,b=-1,c=2; if(a < b) if(b<0) c=0; else c++ ; printf(“%d”,c); } 该程序的输出结果是( )
答案: 2
35、 若运行以下程序时,从键盘输入 ADescriptor < CR > ( < CR > 表示回车),则下面程序的运行结果是( ) #includemain() {char c; int v0=0,v1=0,v2=0; do{ switch(c=getchar()) {case ‘a’:case ‘A’: case ‘e’:case ‘E’: case ‘i’:case ‘I’: case ‘o’:case ‘O’: case ‘u’:case ‘U’:v1+=1; default:v0+=1;v2+=1; } }while(c!=”); printf(“v0=%d,v1=%d,v2=%d”,v0,v1,v2); }
答案: v0=12,v1=4,v2=12
36、 有以下程序: #include<stdio.h> void main(){int a=l,b=2,c=3,d=0; if(a==l && b++==2) if(b!=2||c–!=3) printf(“%d,%d,%d”,a,b,c); else printf(“%d,%d,%d”,a,b,c); else printf(“%d,%d,%d”,a,b,c); } 程序运行后的输出结果是()
答案: l,3,3
37、 设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其他三个不同的是()
答案: if(a>b)c=a;a=b;b=c;
38、 有以下程序段: int a,b,c; a=10; b=50; c=30; if(a>b) a=b, b=c; c=a; printf(“a=%d b=%d c=%d”,a,b,c); 程序的输出结果是()
答案: a=10 b=50 c=10
39、 有以下程序: #include<stdio.h> void main(){int x=1,y=2,z=3; if(x>y) if(y<z) printf(“%d”,++z); else printf(“%d”,++y); printf(“%d”,x++); } 程序的运行结果是( )
答案: 1
40、 有以下程序 #include<stdio.h> void main(){int a=1,b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf(“%d”,b); } 程序运行后的输出结果是( )
答案: 0
41、 有以下程序 #include<stdio.h> void main(){int x=1,y=0; if(!x) y++; else if(x==0) if(x) y+=2; else y+=3; printf(“%d”,y); } 程序运行后的输出结果是( )
答案: 0
42、 能正确表示a和b同时为正或同时为负的表达式是( )
答案: ab>0
43、 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2, 则逻辑表达式(m=a > b)&&(n=c > d)运算后,n的值为()
答案: 2
44、 逻辑运算符两侧运算对象的数据类型()
答案: 可以是任何类型的数据
45、 已知x=43,ch=’A’,y=0;则表达式(x > = y&&ch < ‘B’&&!y)的值是()
答案: 1
46、 设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a > b)&&(n=c > d)后n的值是()
答案: 2
47、 判断char型变量cl是否为小写字母的正确表达式是()
答案: (cl>=’a’)&&(cl<=’z’)
48、 若有条件表达式 (exp)a++:b–,则以下表达式中能完全等价于表达式(exp)的是()
答案: (exp!=0)
49、 表示关系X < =Y < =Z的C语言表达式为()
答案: (X < =Y)&&(Y < =Z)
50、 为表示关系x ≥ y ≥ z,应使用C语言表达式()
答案: (x > =y)&&(y > =z)
51、 设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a > b)&&(n=c > d)后,n的值为()
答案: 2
52、 为表示关系X≥Y≥Z应使用C语言表达式( )
答案: (X > =Y)&&(Y > =Z)
53、 设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式的值为0的是()
答案: !((a < b)&&!c||1)
54、 判断字符型变量x是否是大写字母的正确的表达式()
答案: (x>=’A’)&&(x<=’Z’)
55、 C语言的对语句中用作判断的表达式一般为()
答案: 逻辑表达式和关系表达式
56、 C语言中的逻辑表达式值为真相当于值( )
答案: 1
57、 在C语言中,逻辑值”真”用( )表示
答案: 非0的数
58、 能正确表示逻辑关系:”a ≥ =10或a ≤ 0″的C语言表达式是()
答案: a < =0 || a>=10
59、 在switch语句中,每一个的case常量表达式的值可以相同。
答案: 错误
60、 条件表达式不能取代一般if的语句。
答案: 错误
61、 break可用于循环体中,不可用于switch语句中。
答案: 错误
62、 在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。
答案: 正确
63、 条件运算符和:是一对运算符,不能分开单独使用。
答案: 正确
64、 if(a=5)是允许的。
答案: 正确
65、 逻辑表达式的值只能为1或0。
答案: 正确
66、 在switch语句中,多个case可以共用一组执行语句。
答案: 正确
67、 case语句后如没有break,顺序向下执行。
答案: 正确
第4章 循环结构设计 第4章循环结构测验
1、 若K为整型,以下while循环执行( )次K=0;while (K=0)K=K-1;
答案: 一次也不执行
2、 当执行以下程序段时 {y=1; do {y–;}while(y); printf(“%d”,y); }
答案: 循环体将执行一次
3、 以下叙述正确的是( )
答案: 用do-while语句构成的循环,在while后的表达式为零时结束循环。
4、 当执行以下程序段时 x=-1; do { x=x*x;}while(!x);
答案: 循环体将执行一次
5、 若a,b均为int型变量,且a=20,则以下关于for循环语句的正确判断为 ____。 for(b=20;a!=b;++a,b++) printf(“—-“);
答案: 循环体一次也不执行
6、 如果输入为:ABCdef 执行下面一段程序后,则输出为:void main( ) {char ch; while((ch=getchar( ))!=”) { if(ch > =’A’ && ch < =’Z’) ch=ch+32; else if(ch > =’a’ && ch < ‘z’) ch=ch-32; printf(“%c”,ch); } printf(“”); }
答案: abcDEF
7、 执行以下程序后,输出的结果是 void main( ) { int y=10; do {y–;} while(–y); printf(“%d”,y); }
答案: 0
8、 在下列选项中,构成死循环的程序段是
答案: for(;;);
9、 以下程序的输出结果是main() { int i,k,a[10],p[3]; k=5; for (i=0;i < 10;i++) a[i]=i; for (i=0;i < 3;i++) p[i]=a[i(i+1)]; for (i=0;i < 3;i++) k=k+p[i]2; printf(“%d”,k); }
答案: 21
10、 有以下程序 ,其输出结果是 main() { int x,i; for(i=1;i < =50;i++) { x=i; if(x%2==0) if(x%3==0) if(x%7==0) printf(“%d”,i); } }
答案: 42
11、 执行语句: for (i=1;i<4;i++);后,变量i的值是______.
答案: 4
12、 运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为main ( ){ int m,n;printf(“Enter m,n:”);scanf(“%d%d”,&m,&n);while(m!=n){ while(m > n)m-=n;while(n > m)n-=m;}printf(“m=%d”,m);}
答案: 1
13、 若i,j已经定义为int类型,则以下程序段中内循环总的执行次数是____ for (i=5;i > 0;i–) for (j=0;j < 4;j++) {…}
答案: 20
14、 下面程序的输出是____ main() {int x=3,y=6,a=0; while (x++!=(y-=1)) { a+=1; if (y < x) break; } printf(“x=%d,y=%d,a=%d”,x,y,a); }
答案: x=5,y=4,a=1
15、 定义如下变量: int n=10 则下列循环的输出结果是______ while (n > 7) { n–; printf(“%d”,n); }
答案: 9 8 7
16、 以下程序段的输出结果是_____ int x=3; do { printf(“%3d”,x-=2);} while (!(–x));
答案: 1 -2
17、 执行下面的程序后,a的值为_____ main() { int a,b; for (a=1,b=1;a < 100;a++) { if (b > =20) break; if (b%3==1) { b+=3; continue; } b-=5; } }
答案: 8
18、 读程序: main() { int num=0; while (num < =2) { num++; printf(“%d”,num); } }上面程序的输出结果是______
答案: 1 2 3
19、 假定a和b为int型变量,则执行以下语句后b的值为 a=1;b=10;do { b=b-a; a++; }while (b> 0);
答案: 0
20、 设i,j为int型变量,则下面for循环语句的执行结果是 for(i=10 ,j=0;j<2;j++) { if(i%3) i–; –i; –i; printf(“%d “,i); }
答案: 7 4
21、 假定a和b为int型变量,则执行以下语句后b的值为 a=1;b=10;do { b=b-a; a++; }while (b– > 0);
答案: -4
22、 以下程序的输出结果是 main( ){ int i;for(i=1;i < 6;i++){ if(i%2) {printf(“#”);continue;} printf(““);} printf(“”);}
答案: ###
23、 以下程序的输出结果是 main( ) {int i;for(i=’A’;i < ‘I’;i++)printf(“%c”,i+32);printf(” “); }
答案: abcdefgh
24、 有以下程序 main() { int i, j; for(j=10;j < 11;j++) { for(i=9;i < j; i++) if (!(j%i)) break; if(i=j-1) printf(“%d”,j); } }输出结果是
答案: 10
25、 以下程序段的输出结果是 int x=3; do { printf(“%3d”,x-=2);} while(!(–x));
答案: 1,-2
26、 阅读下列程序: main( ) { int n[3],i,j,k; for(i=0;i〈 3;i++) n[i]=0; k=2; for (i=0;i < k;i++) for (j=0;j〈 2;j++) n[j]=n[i]+1; printf(“%d”,n[1]); } 下述程序运行后输出结果是
答案: 3
27、 定义如下变量和数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是 for(i=0;i<3;i++) printf(“%d”,x[i][2-1]);
答案: 2 5 8
28、 以下循环体的执行次数是main(){int i,j;for(i=0,j=1; i < = j+1; i+=2, j–) printf(“%d “,i);}
答案: 1
29、 设K为整形,则下面的while循环执行( )次k=2;while(k==0){printf(“%d”,k); k–;}printf(“”);
答案: 0次
30、 在C语言中,当while语句中的条件表达式的值为( )时,结束该循环.
答案: 0
31、 以下程序的输出结果是{ int i,j,x=0;for(i=0;i < 2;i++) { x++; for(j=0;j < 3;j++) { if(j%2) continue; x++; } x++; } printf(“x=%d”,x); }
答案: x=8
32、 运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为main( ) { int v1=0,v2=0; char ch; while((ch=getchar( ))!=’#’) { switch(ch) { case ‘a’: case ‘h’: default: v1++; case ‘0’: v2++ ; } }printf(“%d %d”,v1,v2); }
答案: 5,5
33、 下面程序的输出是main(){ int y=9;for(;y > 0;y–){ if(y%3==0){ printf(“%d”,–y); continue;}}}
答案: 852
34、 设有程序段 int k=10; while(k=0) k=k-1; 则下面描述中正确的是__
答案: 循环体语句一次也不执行
35、 设有以下程序段int x=0,s=0;while(!x!=0) s+=++x;printf(“%d”,s); 则______
答案: 运行程序段后输出1
36、 语句while(!E);中的表达式!E等价于_
答案: E==0
37、 下面程序段的运行结果是___a=1;b=2;c=2;while(a < b < c){t=a;a=b;b=t;c–;}printf(“%d,%d,%d”,a,b,c);
答案: 1,2,0
38、 下面程序段的运行结果是x=y=0;while(x < 15)y++,x+=++y;printf(“%d,%d”,y,x);
答案: 8,20
39、 以下程序的输出结果是 int main(void ) { int x=10,y=10,i; for(i=0;x >8;y=++i) printf(“%d,%d “,x–,y); return 0;}
答案: 10 10 9 1
40、 以下程序运行后,输出结果是 main (){ int y=18,i=0,j,a[8]; do { a[i]=y%2; i++; y=y/2; }while(y >= 1); for(j=i-1;j>0;j–) printf(“%d”,a[j]); printf(“”);}
答案: 1001
41、 执行下面的程序后,a的值为 main() { int a,b; for (a=1,b=1;a < = 100;a++) { if(b > = 20) break; if(b%3==1) { b-=2; continue; } b+=5; } }
答案: 15
42、 以下程序段的输出结果是 int x=3; do { printf(“%3d”,x-=2);} while(!(–x));
答案: 1,-2
43、 若X是int型变量,且有下面的程序片段:for (X=3;X < 6;X++) printf((X%2)(“%d”):(“##%d”),X);上面程序片段的输出结果是
答案: 3##4 5
44、 请读程序:#include”stdio.h”main(){ float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){ if(fabs(z)>1.0) { x=y; y=z; z=x/y; }else break;}printf(“%f”,y);}若运行时从键盘上输入3.6 2.4(表示回车),则输出结果是
答案: 1.600000
45、 请读程序:#include “stdio.h”main(){ int num=0;while(num < = 2){ num++;printf(“%d”,num);}}上面程序的输出结果是
答案: 1 2 3
46、 以下程序的输出结果是 main( ) { int n=4; while(n–)printf(“%d “,–n); }
答案: 2 0
47、 下面程序的运行结果是 main() { char ch[7]={“65ab21”}; int i,s =0; for(i=0;ch[i] > = ‘0’&&ch[i] < ‘9’;i+=2) s=10*s+ch[i]-‘0’ printf(“%d”,s); }
答案: 6
48、 以下程序的输出结果是 main( ) { int i; for(i=’A’;i < ‘I’;i++,i++) printf(“%c”,i+32); printf(” “);}
答案: aceg
49、 有以下程序 main() { int i, j; for(j=10;j < 11;j++) { for(i=9;i < j; i++) if (!(j%i))break; if(i=j-1) printf(“%d”,j); } }输出结果是
答案: 10
50、 下面程序的输出是( )main(){ int y=9;for(;y > 0;y–){ if(y%3==0) {printf(“%d”,–y); continue; }}
答案: 852
51、 下列程序的输出结果是main(){ int i, j, m=0, n=1;for(i=0; i < 2; i++)for(j=0; j < 2; j++) if(j > =i) m=1; n++;printf(“%d “,n);}
答案: 2
52、 以下程序的输出结果是#include < stdio.h >#include < string.h >main(){ char b1[8]=”abcdefg”,b2[8],*pb=b1+3; while (–pb > = b1) strcpy(b2,pb); printf(“%d”,strlen(b2));}
答案: 7
53、 以下程序的输出结果是#include < stdio.h >main(){ int i=0,a=0;while(i<20){ for(;;){ if((i%10)==0) break;else i–;}i+=11;a+=i;}printf(“%d”,a);}
答案: 32
54、 以下程序中,while循环的循环次数是main(){ int i=0;while(i < 10){ if(i < 1) continue;if(i==5) break; i++; }…… }
答案: 死循环,不能确定次数
55、 以下程序的输出结果是main(){ int a=0,i;for(i=1;i < 5;i++){ switch(i){ case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;}}printf(“%d”,a);}
答案: 31
56、 以下程序的输出结果是main(){ int i, k, a[10], p[3];k=5;for (i=0;i<10;i++) a[i ]=i;for (i=0;i<3;i++) p[i ]=a[i(i+1)];for (i=0;i<3;i++) k+=p[i]2;printf(“%d”,k);}
答案: 21
57、 有以下程序段 int k=0; while(k=1) k++; while 循环执行的次数是
答案: 无限次
58、 以下程序执行后sum的值是main(){ int i , sum;for(i=1;i < 6;i++) sum+=i;printf(“%d”,sum);}
答案: 不确定
59、 有如下程序 main(){ int i,sum;for(i=1;i <= 3;sum++) sum+=i;printf(“%d”,sum);}该程序的执行结果是
答案: 死循环
60、 有如下程序main(){ int x=23;do { printf(“%d”,x–);}while(!x);}该程序的执行结果是
答案: 23
第5章 函数 第5章函数测验
1、 以下程序运行后,输出结果是intd=1;fun(intp){intd=5;d=d+p++;printf(“%d”,d);}voidmain(){inta=3;fun(a);d=d+a++;printf(“%d”,d);}
答案: 84
2、 以下程序的输出结果是 int d=1; fun(int p) { d = d+p; printf(“%d “,d); return(d); } main( ) { int a=3;printf(“%d “,fun(a+fun(d)));}
答案: 2 7 7
3、 求下列程序的运行结果:#include “stdio.h”int abc(int u,int v); void main ( ) { int a=24,b=16,c; c=abc(a,b); printf(‘%d”,c); } int abc(int u,int v) { int w; while(v) { w=u%v; u=v; v=w } return u;}
答案: 8
4、 下列程序执行后输出的结果是 #include 〈stdio.h〉 f(int a) { int b=0; int c=3; a=c+ +,b+ +; return(a); } main( ) { int a=2,i,k; for(i=0;i〈2;i+ +) k=f(a+ +); printf(“%d”,k); }
答案: 3
5、 下列程序执行后输出的结果是 #include 〈stdio.h〉 fun3(int x){ static int a=3; a+=x; return(a);}void main(){ int k=2, m=1, n; n=fun3(k);n=fun3(m);printf(“%d”,n);}
答案: 6
6、 有以下程序 viod fun (int a,int b,int c) { a=456; b=567; c=678;} main() { int x=10, y=20,z=30; fun (x,y,z); printf(“%d,%d,%d”,x,y,z); }输出结果是
答案: 10,20,30
7、 在一个C源程序文件中,若要定义一个只允许本源文件中所用的函数的全局变量,则变量需要使用的存储类别是____
答案: static
8、 以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为 #include”stdio.h”#include”string.h”func(char str1[]) { int num=0,i=0; while((str1[i])!=’\0′) {num++,i++;}return(num); } main( ) {char str[10];gets(str);printf(“%d”,func(str));}
答案: 5
9、 以下程序运行后,输出结果是 func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m);}main(){ int k=4,m=1,p;p=func(k,m);printf(“%d”,p);p=func(k,m);printf(“%d”,p);}
答案: 8,17
10、 请读程序:#include “stdio.h”FUNC(int A, int B){ int C;C=A+B;return C;}main ( ){ int X=6,Y=7,Z=8,R;R=FUNC((X,Y,X+Y),Z–);printf(“%d”,R); }上面程序的输出结果是
答案: 21
11、 请读程序:#include”stdio.h”void FUN(int S[]){ static int J=0; do { S[J] +=S[J+1]; } while( ++J<2);}main(){ int K, A[10]={ 1,2,3,4,5};for( K=1;K<3;K++) FUN(A);for (K=0;K<5;K++) printf(“%d”,A[K]);}上面程序输出结果是
答案: 35745
12、 请读程序:f(int b[],int n){ int i,r;r=1;for(i=0;i<=n;i++)r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf(“%d”,x);}上面程序输出结果是
答案: 120
13、 下面程序的输出是fun3(int x) { static int a=3; a+=x; return(a); }main(){ int k=2,m=1,n; n=fun3(k); n=fun3(m);printf(“%d”,n);}
答案: 6
14、 下面程序的输出是int m=13;int fun2(int x,int y){ int m=3; return(x*y-m); }main(){ int a=7,b=5; printf(“%d”,fun2(a,b)/m);}
答案: 2
15、 下列程序执行后输出的结果是 #include 〈stdio.h〉 f(int a) { int b=0; int c=3; a=c+ +,b+ +; return(a); } main( ) { int a=2,i,k; for(i=0;i〈2;i+ +) k=f(a+ +); printf(“%d”,k); }
答案: 3
16、 下列程序执行后的输出结果是void func1(int i);void func2(int i);char st[]=”hello,friend!”;void func1(int i){ printf(“%c”,st[i]); if(i<3) {i+=2; func2(i); }}void func2(int i) { printf(“%c”,st[i]); if(i<3) {i+=2;func1(i);} }main(){int i=0;func1(i);}
答案: hlo
17、 下面程序的输出是int m=13;int fun2(int x,int y){ int m=3; return(x*y-m);}main(){ int a=7,b=5;printf(“%d”,fun2(a,b)/m);}
答案: 2
18、 有以下程序 #include “stdio.h” int abc(int u,int v);main ( ) { int a=24,b=16,c; c=abc(a,b); printf(“%d”,c); } int abc(int u,int v) { int w; while(v) { w=u%v; u=v; v=w; } return u; }
答案: 8
19、 下列程序执行后输出的结果是 int d=1; fun (int q) { int d=5; d +=q + +; printf(“%d”,d); } main( ) { int a=3; fun(a); d + = a + +; printf(“%d”,d); }
答案: 8 4
20、 以下叙述中不正确的是( )
答案: 在一个函数内的复合语句中定义的变量在本函数范围内有效
21、 C语言中,若函数定义时未说明类型,则隐含类型为( )
答案: int
22、 C程序中,若函数调用采用传值方式,则( )
答案: 实参和虚参各自占有存储单元
23、 返回值为void的函数,其含义是____.
答案: 调用函数之后,被调用的函数没有返回值
24、 C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是____.
答案: 单向值传递
25、 C语言函数的隐含存储类别是______.
答案: auto
26、 下列说法正确的是__.
答案: 调用函数时,将为形参分配内存单元
27、 C语言中函数返回值的类型是由______决定的。
答案: 定义函数时所指定的返回函数值类型
28、 C语言程序由函数组成。它的____。
答案: 主函数可以在其他函数之前,函数内不可以嵌套定义函数
29、 以下说法中正确的是____。
答案: 一个函数内部定义的变量,只能在本函数范围内有效
30、 下列关于存储类型说法正确的是( )
答案: extern型变量一般用于在程序的多个编译单位间传递数据
31、 下列结论中只有__是正确的:
答案: 所有的递归程序均可以采用非递归算法实现
32、 C语言中____函数的递归调用。
答案: 允许
33、 以下正确的函数定义形式是
答案: double fun(int x,int y)
34、 以下正确的说法是:在C语言中
答案: 实参和与其对应的形参各占用独立的存储单元
35、 若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数
答案: 返回一个不确定的值
36、 关于建立函数的目的,以下正确的说法是
答案: 形参可以是常量,变量或表达式
37、 以下正确的说法是
答案: 如果函数值的类型与返回值类型不一致,以函数值类型为准
38、 C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是
答案: 单向值传递
39、 以下程序有语法错误,有关错误原因的正确说法是main(){ int G=5,k;void prt_char();… k=prt_char(G);…}
答案: 函数说明和函数调用语句之间有矛盾
40、 下面函数调用语句含有实参的个数为 func((exp1,exp2),(exp3,exp4,exp5));
答案: 2
41、 以下错误的描述是:函数调用可以
答案: 做为一个函数的形参
42、 以下正确的描述是:在C语言程序中
答案: 函数的定义不可以嵌套,但函数的调用可以嵌套
43、 若用数组名作为函数的实参,传递给形参的是
答案: 数据的首地址
44、 已有如下数组定义和 f 函数调用语句, int a[3][4]; f(a); 则在 f 函数的说明中,对形参数组 array 的错误定义方式为
答案: f(int array[3][])
45、 若使用一维数组名作函数实参,则以下正确的说法是
答案: 必须在主调函数中说明此数组的大小
46、 以下函数值的类型是fun ( float x ){ float y; y= 3*x-4; return y;}
答案: int
47、 设有以下函数:f ( int a){ int b=0;static int c = 3;b++; c++;return(a+b+c);}如果在下面的程序中调用该函数,则输出结果是main(){ int a = 2, i;for(i=0;i<3;i++)printf(“%d”,f(a));}
答案: 7 8 9
48、 以下程序的输出结果是int a, b;void fun(){ a=100; b=200; }main(){ int a=5, b=7;fun();printf(“%d%d “, a,b);}
答案: 5 7
49、 以下程序的输出结果是int f(){ static int i=0; int s=1; s+=i; i++; return s;}main(){ int i,a=0;for(i=0;i<5;i++) a+=f(); printf(“%d”,a); }
答案: 15
50、 若有以下程序#include”stdio.h”voidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf(“%d”,n);}则以下叙述中不正确的是
答案: 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复声明
51、 以下程序的输出结果是f(int b[],int m,int n){ int i,s=0;for(i=m;i<n;i=i+2) s=s+b[i];return s;}main(){int x,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf(“%d”,x);}
答案: 10
52、 以下程序的输出的结果是int x=3;main(){ int i;for (i=1;i<x;i++) incre();}incre(){ static int x=1; x*=x+1; printf(” %d”,x);}
答案: 2 6
53、 下列叙述中正确的是
答案: C语言所有函数都是外部函数
54、 以下所列的各函数首部中,正确的是
答案: void play(int a,int b)
55、 下列程序段的输出结果是void fun(intx, inty){ printf(“%d %d”,x,y);x=3;y=4;}main(){ int x=1,y=2;fun(&y,&x);printf(“%d %d”,x, y);}
答案: 2 1 4 3
56、 以下只有在使用时才为该类型变量分配内存的存储类说明是
答案: auto和 register
57、 以下程序的输出结果是long fun( int n){ long s; if(n= =1 || n= =2) s=2; else s=n-fun(n-1);return s;}main(){ printf(“%ld”, fun(3)); }
答案: 1
58、 有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是
答案: 3
59、 有如下程序int runc(int a,int b){ return(a+b);}main(){ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d”,r);}该程序的输出的结果是
答案: 15
60、 有如下程序long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(2); }main() { printf(“%d”,fib(3));} 该程序的输出结果是
答案: 4
61、 若有以下调用语句,则正确的fun函数的首部是main(){………..inta[50],n;……………fun(n,&a[9]);…………….}
答案: voidfun(intp,ints)
62、 以下程序的输出结果是intd=1;fun(intp){staticintd=5;d+=p;printf(“%d”,d);return(d);}main(){inta=3;printf(“%d”,fun(a+fun(d)));}
答案: 61515
63、 若有如下定义:chars[tOO]=”string”;则下述函数调用中,()是错误的。
答案: puts(puts(”rom’’))
64、 以下程序的输出结果是()。#include”stdio.h”voidsub(intx,inty,intz){z=y—x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(”%d,%d,%d”,a,b,c);}
答案: 一5,一12,一7
65、 下述程序的输出结果是( )。 #include”stdio.h”long fun(int n) {long s; if(n==1||n==2) s=2; else s=n+fun(n-1); retum s; } main() { printf(”%ld”,fun(4)); }
答案: 9
66、 以下叙述中正确的是( )。
答案: C语言程序总是从main()函数开始执行
67、 以下函数的类型是( )。 fff(float x) { printf(”%d”,x*x); }
答案: int类型
68、 以下程序的输出结果是( )。#include”stdio.h”main(){ int i=2,p;p=f(i,i+1);prinff(”%d”,p);}int f(int a,int b){ int c; c=a; if(a>b) c=1; else if(a==b) c=0; else c=-1; return(c);}
答案: -1
69、 函数调用strcat(strcpy(strl,str2),str3)的功能是( )
答案: 将字符串str2复制到字符串strl中后再将字符串str3连接到字符串strl之后
第6章 数据类型、常量、变量、表达式 第6章数据类型测验
1、 执行下列程序时输入:123 < 空格 > 456 < 空格 > 789 < 回车 >,输出结果是( )int main( void){char s[100];int c, i;scanf(“%c”,&c);scanf(“%d”,&i);scanf(“%s”,s);printf(“%c,%d,%s “,c,i,s);return 0;}.
答案: 1,23,456
2、 以下选项中属于C语言的数据类型是( )
答案: 双精度型
3、 在C语言中,不正确的int类型的常数是( )
答案: 028
4、 下列描述中不正确的是
答案: 可以对整型数组进行整体输入、输出
5、 以下程序的输出结果是( )void main( ){ int k=17;printf(“%d,%o,%x “,k,k,k);}
答案: 17,21,11
6、 若变量a是int类型,并执行了语句:a=‘A’+1.6;,则正确的叙述是( )
答案: a的值是字符‘A’的ASCII值加上1
7、 以下选项中不属于C语言的类型的是( )
答案: long short
8、 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是( )
答案: a=4000L*10L;
9、 在C语言中,合法的长整型常数是( )
答案: OL
10、 以下有4组用户标识符,其中合法的一组是( )A) For B) 4d C) f2_G3 D) WORD -sub DO IF void Case Size abc define
答案: C
11、 以下选项中合法的字符常量是( )
答案: ‘\010’
12、 假定x和y为double型,则表达式x=2,y=x+3/2的值是( )
答案: 3.000000
13、 x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( )
答案: scanf(“%d%d%d”,&x,&y,&z);
14、 以下选项中,非法的字符常量是( )
答案: “n”
15、 以下所列的C语言常量中,错误的是( )
答案: 1.2e0.5
16、 下列选项中,合法的C语言关键字是( )
答案: default
17、 下列变量定义中合法的是( )
答案: short _a=1-.le-1;
18、 下列变量名合法的是( )
答案: m_number
19、 请选出可用作C语言用户标识符的一组标识符( )
答案: a3_b3 _123 IF
20、 C语言中合法的字符常量是( )
答案: ‘\X43’
21、 下面说法中正确的是( )
答案: 只要表达式中存在double型,所有其他类型数据都必须转
22、 C语言中最简单的数据类型包括:__
答案: 整型,实型,字符型
23、 C语言提供的合法的数据类型关键字是:
答案: short
24、 若有以下定义: char a;int b; float c;double d;则表达式a*b+d-c值的类型为______.
答案: double
25、 下列标识中合法的用户标识符为____.
答案: year
26、 在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为( )
答案: char < int < long int < =float < double
27、 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )
答案: 6
28、 下列四组选项中,均不是C语言关键字的选项是( )
答案: define IF type
29、 下列四个选项中,均是C语言关键字的选项是( )
答案: switch typedef continue
30、 下面四个选项中,均是不合法的用户标识符的选项是
答案: b-a goto int
31、 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( )
答案: 必须为字母或下划线
32、 下面四个选项中,均是合法整型常量的选项是( )
答案: 160 -0xffff 011
33、 下面四个选项中,均是不合法的整型常量的选项是( )
答案: -0x48eg -068 03f
34、 下面四个选项中,均是不合法的浮点数的选项是( )
答案: 123 2e4.2 .e5
35、 下面四个选项中,均是合法的浮点数的选项是( )
答案: -.60 12e-4 -8e5
36、 下面四个选项中,均是合法转义字符的选项是( )
答案: ”’ ‘\017’ ‘\”’
37、 下面四个选项中,均是不合法的转义字符的选项是( )
答案: ‘\1011’ ” ‘\a’
38、 下面正确的字符常量是( )
答案: ‘W’
39、 下面四个选项中,均是不正确的八进制数或十六进制数的选项是( )
答案: 0a12 7ff -123
40、 下面四个选项中,均是正确的八进制数或十六进制数的选项是( )
答案: 0010 -0x11 0xf1
41、 下面四个选项中,均是正确的数值常量或字符常量的选项是( )
答案: +001 0xabcd 2e2 50.
42、 下面不正确的字符串常量是( )
答案: 123′
43、 已知各变量的类型说明如下:int k,a,b; unsigned long w=5; double x=1.42;则以下不符合C语言语法的表达式是( )
答案: x%(-3)
44、 已知各变量的类型如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是( )
答案: a+=a-=(b=4)*(a=3)
45、 以下不正确的叙述是( )
答案: 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
46、 以下正确的叙述是( )
答案: 在C程序中,%是只能用于整数运算的运算符
47、 在C语言中,int、char和short三种类型数据在内存中所占用的字节数( )
答案: 由所用机器的机器字长决定
48、 若有说明语句:char c=’\072′;则变量c
答案: 包含1个字符
49、 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是
答案: 2.500000
50、 sizeof(float)是
答案: 一个整型表达式
51、 设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型为
答案: double
52、 在C语言中,char型数据在内存中的存储形式是( )
答案: ASCII码
53、 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )
答案: m=n*100+0.5,n=m/100.0
54、 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为( )
答案: 0–65535
55、 设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为( )
答案: double
56、 字符型常量在内存中存放的是字符对应的____
答案: ASCII代码
57、 以下关于字符串的不正确说法是( )
答案: 字符串长度就是字符串中字符的个数
58、 C语言提供的合法的关键字是( )
答案: default
59、 C语言中,double类型数据占( )个字节,char类型数据占( )个字节
答案: 8和1
60、 下列不正确的转义字符是( )
答案: ”
61、 以下4个选项中,不能看作一条语句的是( )
答案: if(b!=5)x=2;y=6;
62、 以下关于C语言数据类型使用的叙述中错误的是
答案: 若只处理”真”和”假”两种逻辑值,应使用逻辑类型
63、 以下选项中不合法的标识符是( )
答案: & a
64、 以下选项中合法的标识符是_。
答案: _11
65、 以下选项中,能用作用户标识符的是_。
答案: 0
66、 以下C语言用户标识符中,不合法的是( )
答案: a–b
67、 以下选项中关于C语言常量的叙述错误的是( )
答案: 经常被使用的变量可以定义成常量
68、 C源程序中不能表示的数制是__。
答案: 二进制
69、 以下选项中能表示合法常量的是( )
答案: 字符串:”\007″
70、 以下选项中,能用作数据常量的是__。
答案: 115L
71、 以下选项中不能用作C程序合法常量的是( )
答案: 1,234
72、 以下选项中不能作为C语言合法常量的是__。
答案: ‘cd’
73、 以下选项中可用作C程序合法实数的是( )
答案: 1.00E-01
74、 以下选项中不属于字符常量的是( )
答案: ′′C′′
75、 有以下定义语句,编译时会出现编译错误的是__。
答案: char a=’aa’;
76、 以下选项中正确的定义语句是__。
答案: double a=7,b=7;
77、 以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)__。
答案: printf(“%d”,’A’);
78、 下列可用于C语言用户标识符的一组是( )
答案: a3_3,_123,Car
79、 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )
答案: 连接符
80、 下面各选项中,均是C语言合法标识符的选项组是( )
答案: _23 me _3ew
81、 以下叙述中错误的是( )
答案: 用户所定义的标识符允许使用关键字
82、 下面四个选项中,均是不合法的用户标识符的选项是( )
答案: c-b goto int
83、 下列是正确的用户自定义标识符的是( )
答案: _w1
84、 以下选项均可用作C语言用户标识符的是( )
答案: a3_b3,_123,IF
85、 以下选项中合法的标识符是( )
答案: _12
86、 以下合法的十六进制数是( )
答案: 0x4de
87、 以下符合C语言语法的实型常量是( )
答案: 8.00E-02
88、 以下选项中,不能作为合法常量的是( )
答案: 1.234e0.5
89、 以下选项中不属于字符常量的是( )
答案: ′′E′′
90、 以下不合法的字符常量是( )
答案: ‘\018’
91、 以下选项中值为1的表达式是( )
答案: 1-‘\0’
92、 设有定义:int k=1,m=2;float f=7;,则以下选项中错误的表达式是( )
答案: k%int(f)
93、 有以下程序,其中%u表示按无符号整数输出 main() { unsigned int x=0xFFFF; /x的初值为十六进制数/ printf(“%u “,x); } 程序运行后的输出结果是( )
答案: 65535
94、 以下程序的输出结果是 void main() { int a=20; printf(“%d,%o,%x”,a,a,a); }
答案: 20, 24,14
95、 以下选项中不属于C语言的类型的是( )
答案: long short
96、 有以下程序段 int j;float y;char name[50]; scanf(“%2d%f%s”,&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为( )
答案: 566
97、 如已定义x和y为double类型,则表达式x=1,y=x+5/2的值是( )
答案: 3.000000
98、 已知大写字母A的ASCII码的值是65,小写字母a的ASCII码的值是97,以下不能将变量c中的大写字母转换为对应小写字母的语句是( )
答案: c=(‘A’+c)%26-‘a’
99、 已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是( )
答案: ‘A'<=c<=’Z’
100、 数字字符0的ASCII值为48,若有以下程序: int main(void) {char a=’1′,b=’2′; printf(“%c,”,b++); printf(“%d”,b-a); return 0;} 程序运行后的输出结果是( )
答案: 2,2
101、 设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为( )
答案: double
第6章 数据类型、常量、变量、表达式 第6章运算符和表达式测验
1、 有以下定义:int a;long b;double x,y;则以下选项中正确的语句是( )
答案: a=x!=y;
2、 以下不能正确表示代数式4cd/ab的C语言表达式是( )
答案: 4cd/ab
3、 表达式:(int)((double)9/2)-(9)%2的值是__。
答案: 3
4、 若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是( )
答案: i=a%11;
5、 设变量已正确定义并赋值,以下正确的表达式是( )
答案: x=y+z+5,++y
6、 设有定义:float x=123.4567;则执行以下语句后的输出结果是 printf(“%f”,(int)(x*100+0.5)/100.0);
答案: 123.46
7、 设变量x为float型且已赋值,则以下语句能将x中的数值保留到小数点后两位,并将第3位四舍五入的是( )
答案: x=(int)(x*100+0.5)/100.0
8、 若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是( )
答案: ++x,y=x–
9、 以下能正确定义赋初值的语句是( )
答案: char c=32;
10、 有以下定义:int a;long b;double x,y;则以下选项中正确的语句是( )
答案: a=x!=y;
11、 设有定义:int x=2;,以下表达式中,值不为6的是__。
答案: 2*x,x+=2
12、 设有如下程序段: int x=2004,y=2008; printf(“%d”,(x,y)); 则以下叙述中正确的是( )
答案: 输出值为2008
13、 下面程序的运行结果是 ( )#include<stdio.h>void main() {int y=5, x=14;y=((x=3*y,x+6),x-1);printf(“x=%d,y=%d”,x,y);}
答案: x=15,y=14
14、 设有定义:int x=3;,以下表达式中,值不为12的是( )
答案: 2*x,x+=6
15、 有以下定义:int a;long b;double x,y;则以下选项中正确的语句是( )
答案: a=x!=y;
16、 在C语言中,运算对象必须是整型数的运算符是( )
答案: %
17、 若变量已正确定义并赋值,以下符合C语言语法的表达式是( )
答案: a=b=c+2
18、 已知各变量的类型说明如下: int k,a,b; unsigned long w=5; double x=1.42; 则以下不符合C语言语法的表达式是( )
答案: x%(-3)
19、 现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为:( )
答案: double
20、 以下关于C语言的叙述中正确的是 ( )
答案: C语言中的注释不可以夹在变量名或关键字的中间
21、 设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为()
答案: double
22、 设有定义:int x=3;,以下表达式中,值不为12的是( )
答案: 2*x,x+=6
23、 若变量已正确定义,在if(W)printf(“%d”,k);中,以下不可替代W的是( )
答案: a<>b+c
24、 设有定义:int m=0;。以下选项的四个表达式中与其他三个表达式的值不相同的是( )
答案: m++
25、 若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是( )
答案: a=1+(b=c)=4;
26、 若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )
答案: x=y==5;
27、 下列程序的输出结果是 ( )#include<stdio.h>void main(){double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf(“%d”,d*y);}
答案: 0
28、 若变量已正确定义并赋值,以下符合C语言语法的表达式是( )
答案: a=b=c+2
29、 以下叙述不正确的是( )
答案: 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
30、 若有定义语句:int x=10;,则表达式x-=x+x的值为__。
答案: -10
31、 表达式a+=a-=a=9的值是( )
答案: 0
32、 若有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为__。
答案: 1
33、 设有如下定义:int x=1,y=-1;,则语句:printf(“%d”,(x–&++y));的输出结果是
答案: 0
34、 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( )
答案: (a=c) &&(b=c);
35、 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为( )
答案: 1
36、 假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m=(w<x)w: x;m=(m<y)m:y;m=(m<z)m: z;则该程序运行后,m的值是:
答案: 1
37、 以下关于运算符优先顺序的描述中正确的是( )
答案: 赋值运算符 < 逻辑运算符 < 关系运算符 < 算术运算符
38、 下列运算符中优先级最高的是( )
答案: +
39、 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( )
答案: !(A%2)
40、 以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(yz) 的C语言表达式是( )
答案: x/yz
41、 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( )
答案: -12
42、 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( )
答案: 3
43、 若变量c为char类型,能正确判断出c为小写字母的表达式是( )
答案: (c>= ‘a’)&&(c<= ‘z’)
44、 以下程序的输出结果是#include<stdio.h>void main(){ int x=0.5;char z=’a’;printf(“%d”, (x&&1)&&(z<‘z’) );}
答案: 0
45、 若变量已正确定义并赋值,下面符合C语言语法的表达式是( )
答案: a=b=c+2
46、 C语言中运算对象必须是整型的运算符是( )
答案: %=
47、 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( )
答案: 2.0
48、 若变量a、i 已正确定义,且i已正确赋值,合法的语句是( )
答案: ++i;
49、 若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是( )
答案: 0
50、 设有说明语句:char a=’\72′;则变量a
答案: 包含1个字符
51、 有如下程序段int a=14,b=15,x;char c=’A’;x=(a&&b)&&(c<‘B’);执行该程序段后,x的值为( )
答案: 1
52、 设有 int x=11; 则表达式 (x++ * 1/3) 的值是( )
答案: 3
53、 下列程序执行后的输出结果是(小数点后只写一位)#include<stdio.h>void main(){double d;float f;long l;int i;i=f=i=d=20/3;printf(“%d %ld %f %f “, i,l,f,d);}
答案: 6 6 6.0 6.0
54、 设 int x=1, y=1; 表达式(!x||y–)的值是( )
答案: 1
55、 下列程序的运行结果是#include < stdio.h >void main(){int a=2,b=5;printf(“a=%d,b=%d”,a,b);}
答案: a=2,b=5
56、 判断字符型变量x是否是大写字母的正确表达式是___
答案: (x >=’A’) && (x <=’Z’)
57、 以下程序的输出结果是#include<stdio.h>void main(){int a=-1,b=4,k;k=(++a<0)&&!(b–<=0);printf(“%d%d%d”,k,a,b);}
答案: 0 0 4
58、 C语言提供的合法的数据类型关键字是____
答案: short
59、 表达式:10!=9的值是___
答案: 1
60、 若t为double类型,表达式t=1,t+5,t++执行完后,t的值是_____
答案: 2.0
61、 若有以下说明和语名: int a=5 a++; 此处表达式a++的值是____
答案: 5
62、 设int a=12,则执行完语句a+=a-=a*a后,a的值是_____
答案: -264
63、 若有以下定义和语句: char c1=’b’,c2=’e’; printf(“%d,%c”,c2-c1,c2-‘a’+”A”) 则输出结果是_
答案: 3,E
64、 设有以下定义: int x=10,y=3,z; 则语句 printf(“%d”,z=(x%y,x/y)) 的输出结果是____
答案: 3
65、 以下程序的输出结果是______#include<stdio.h>int main(){ int x=10,y=10; printf(“%d %d”,x–,–y); return 0;}
答案: 10 9
66、 在C语言中,如果下面的变量都是int类型,则输出结果是______sum=pad=5;pad=sum++,pad++,++pad;printf(“%d”,pad);
答案: 7
67、 设ch是char型变量,其值为A,且有下面的表达式: ch=(ch>=’A’&&ch<=’Z’)(ch+32):ch 上面表达式的值是
答案: a
68、 有以下程序#include < stdio.h >void main(){int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}
答案: 2,1
69、 设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d)的值为
答案: 0
70、 假定有以下变量定义: int k=7,x=12; 则能使值为3 的表达式是__。
答案: (x%=k)-(k%=5)
71、 设有int i=10,j=10; 则printf(“%d,%d”,++i,j–)的输出是_____
答案: 11, 10
72、 设 int b=2;表达式b/(b*2)的值是_
答案: 0
73、 设CH是字符型变量,其值为’A’,下列表达式的值是 CH=(CH > =’A’&&CH < =’Z’)(CH+32):CH
答案: a
74、 设有如下定义: inta=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a<b)&&(n=c>d)后,m的值为_____
答案: 1
75、 设a,b和c都是int型变量,且a=3,b=4,c=5, 则下面表达式的值为0的是( )。
答案: !((a < b)&&!c||1)
76、 设x、y、z和k都是int型变量,则执行表达式: x=(y=4,z=16,k=32)后,x的值为_____
答案: 32
77、 设A,B和C都是int型变量,且A=3,B=4,C=5, 则下列 表达式中,值为0的表达式是:
答案: ((A= ‘A’ && CH < = ‘Z’) (CH +32):CH
78、 下列赋值语句正确的是(设int a,x) ( )
答案: a=(x=1,x++,x+2)
79、 表达式(a=35,a5),a+5的值是多少( )
答案: 20
80、 字符形式”\b”的功能是( )
答案: 退格
81、 设int x=5,y=4,(–x==y++) –x:++y的值是:
答案: 3
82、 设有整型变量a,b,c,它们的初值是1运行表达式: ++a||++b&++c后,a,b,c的值分别是:_
答案: 2,1,1
83、 已知:char a; int b; float c; double d ; 则表达式2+a+9b5c-5d的值是__
答案: double
84、 设整型变量a为10,b为3,下列的表达式值为1的是____
答案: a!=b||a>=b
85、 若有以下定义和语句:int u=010,v=0x10,w=10;printf(″%d,%d,%d″,u,v,w);则输出结果是:_____
答案: 8,16,10
86、 设x为int型变量,则执行以下语句后,x的值为_. x=10; x+=x-=x-x;
答案: 20
87、 执行语句x=(a=3,b=a–)后x,a,b的值为_____
答案: 3 2 3
88、 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是_____
答案: 交换x和y中的值
89、 阅读下列程序段,其正确输出为( )a=10;b=50;c=30;if(a>b)a=b; b=c;c=a;printf(“a=%d,b=%d,c=%d”,a,b,c);
答案: a=10,b=30,c=10
90、 若有两条语句static char x[] =”abcde”;static char y[] ={‘a’,’b’,’c’,’d’,’e’};则下列语法中正确的是____
答案: x数组的长度大于y数组的长度
91、 设有如下定义: int x=10,y=3,z; 则语句 printf(“%d”,z=(x%y,x/y)); 的输出结果是______
答案: 3
92、 设A=3,B=4,执行 printf(“%d,%d”,(A,B),(B,A));的输出是____
答案: 4,3
93、 若x和y都是int型变量,x=100,y=200,且有下面的程序片段: printf(“%d”,(x,y)); 上面程序片段的输出结果是( )
答案: 200
94、 putchar函数可以向终端输出一个( )
答案: 一个字符或字符型变量值
95、 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6′-‘3’;后,c2中的值为
答案: 68
96、 表达式18/4*sqrt(4.0)/8值的数据类型为( )
答案: double
97、 设以下变量均为int类型,则值不等于7的表达式是( )
答案: (x=6,x+1,y=6,x+y)
98、 若有语句;char str1[8],str2[8]={“hello!”}; 则能将字符串hello!赋给str1的正确语句是_____
答案: strcpy(str1,str2)
99、 b’在内存中占_个字节。“b”在内存中占_个字节
答案: 1和2
100、 语句printf(“a\bre’hi’y\\bou”);的输出结果是( )
答案: re’hi’you
101、 以下说法中正确的是( )
答案: #define和printf都不是C语句
102、 在下列运算符中,优先级别最高的是( )
答案: %
103、 设有数组定义: char array [ ]=”China”; 则数组 array所占的空间为( )
答案: 6个字节
104、 语句:printf(“%d “,12&&12);的输出结果是( )
答案: 1
105、 以下运算符中优先级最低的是( )
答案: ||
106、 有以下程序,其中k的初值为八进制数#include<stdio.h>void main(){int k=011; printf(“%d”,k++);}程序运行后的输出结果是( )
答案: 9
107、 有以下程序#include<stdio.h>void main(){int x=011;printf(“%d”,++x);}程序运行后的输出结果是( )
答案: 10
108、 已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是
答案: !(kk>=′A′||kk<=′Z′)
109、 有以下程序:#include <stdio.h>void main(){char cl,c2; cl=’A’+’8′-‘4′; c2=’A’+’8’-‘5’; printf(“%c,%d”,cl,c2);}已知字母A的ASCIl码为65,程序运行后的输出结果是____
答案: E,68
110、 以下叙述不正确的是( )
答案: 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
111、 现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为:
答案: double
112、 以下定义语句中正确的是( )
答案: char A=65+1,b=’b’;
113、 设有定义int a;float b;,执行scanf(“%2d%f”,&a,&b);语句时,若从键盘输入876<空格> 854.0<回车>,a和b的值分别是( )
答案: 87和6.000000
114、 以下程序执行后的输出结果是fun(int x,int y){static int m=0,i=2;i+=m+1;m=i+x+y;return m;}void main(){int j=1,m=1,k;k=fun(j,m);printf(“%d,”,k);k=fun(j,m);printf(“%d”,k);}
答案: 5,11
115、 浮点型常量的指数表示中,e是可以省略的。
答案: 错误
116、 表达式语句和表达式没有什么区别。
答案: 错误
117、 增1减1运算符的前缀运算和后缀运算的表达式值是相同的。
答案: 错误
118、 变量被定义后,它不仅有一个确定的地址值,而且还会有一个确定的本身值。
答案: 错误
119、 分号是C语言中语句的结束符,不可用作分隔符。
答案: 错误
120、 C语言规定:定义符号常量时必须用大写字母。
答案: 错误
121、 一个变量的数据类型被强制转换后,它将保持被强制转换后的数据类型。
答案: 错误
122、 任何表达式语句都是表达式加分号组成的。
答案: 正确
123、 在C语言中,逗号既可以作为运算符,也可以作为分隔符。
答案: 正确
124、 变量被定义后,它的作用域和寿命就被确定了,并且不可改变。
答案: 正确
125、 double型变量在内存中占的字节数比int型变量在内存中占的字节数多。
答案: 正确
上方为免费预览版答案,如需购买完整答案,请点击下方红字
点关注,不迷路,微信扫一扫下方二维码
关注我们的公众号:阿布查查 随时查看答案,网课轻松过
为了方便下次阅读,建议在浏览器添加书签收藏本网页
电脑浏览器添加/查看书签方法
1.按键盘的ctrl键+D键,收藏本页面
2.下次如何查看收藏的网页?
点击浏览器右上角-【工具】或者【收藏夹】查看收藏的网页
手机浏览器添加/查看书签方法
一、百度APP添加/查看书签方法
1.点击底部五角星收藏本网页
2.下次如何查看收藏的网页?
点击右上角【┇】-再点击【收藏中心】查看
二、其他手机浏览器添加/查看书签方法
1.点击【设置】-【添加书签】收藏本网页
2.下次如何查看收藏的网页?
点击【设置】-【书签/历史】查看收藏的网页
素拳碱斯殊咀揉信龋桥啡摔烫