C语言习题及解答
更新时间:2023-10-21 22:45:01 阅读量: 综合文库 文档下载
- c语言解答网站推荐度:
- 相关推荐
第1部分 课后练习题
第1章 C语言概述
一、选择题
1.一个C程序的执行是从 。
A) 本程序的main函数开始,到main函数结束
B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束 2.以下叙述正确的是 。
.在C程序中,main函数必须位于程序的最前面 A) B) C)
C程序的每行中只能写一条语句 C语言本身没有输入输出语句
在对一个C程序进行编译的过程中,可发现注释中的拼写错误 3.以下叙述不正确的是 。
A) 一个C源程序可由一个或多个函数组成 B) 一个C源程序必须包含一个main函数 C) C程序的基本组成单位是函数
D) 在C程序中,注释说明只能位于一条语句的后面 4.C语言规定:在一个源程序中,main函数的位置 。
A) 必须在最开始 B) 必须在系统调用的库函数的后面 C) 可以任意 D) 必须在最后 5.一个C语言程序是由 。
A) 一个主程序和若干子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 6.C语言中的语句需要 符号作为结尾。 A) : B) ; C) 。 D) //
7. C 语言程序中可以对程序进行注释,注释部分用符号_____括起来。 A)‘{‘ 和’}’ B)‘[‘和’]’ C)“/*”和”*/” D)“*/”和”/*” 8.C语言中注释的位置 。
A) 必须在程序的最开始 B) 必须在程序的结尾 C) 可以在程序的任何位置 D) 不可以写到main函数里面
9.C语言程序能够在不同的操作系统下面运行,这说明c语言具有很好的 。
1
A) 适应性 B)移植性 C)兼容性 D) 操作性 10.C语言经过编译后生成的文件的后缀是 。 A).c B) .cpp C) .exe D) .obj 11.C语言编译程序的首要工作是 。
A) 检查C语言程序的语法错误 B) 检查C语言程序的逻辑错误 C)检查程序的完整性 D) 同时检查语法和逻辑错误 12. C语言经过链接后生成的文件的后缀是 。 A).c B) .cpp C) .exe D) .obj
二. 填空题
1.计算机程序设计语言的发展经历了从 、 到 的历程。
2.计算机唯一能识别的语言是 。 3.C源程序的基本单位是 。 4.一个C源程序至少应包括一个 。
5.在一个C源程序中,注释部分两侧的分界符分别为 和 。
6.C语言源程序文件的后缀是 ______, 经过编译后, 生成文件的后缀是 ______,经过连接后, 生成文件的后缀是______。
7. 用高级语言编写的程序称为 ,必须将其翻译成二进制程序后才能执行。翻译有两种方式,一种是通过 翻译一句执行一句的方式执行,另一种通过 一次翻译产生目标程序,然后执行。
第2章 基本语法 —— 语言描述与
数据存储的简单方法
一.选择题
1.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 。 A)必须为字母 B)必须为下划线
C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 2. 若以下选项中的变量已正确定义,则正确的赋值语句是 。
A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 3. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是 。
A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0 C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0 4. 下列C语言中运算对象必须是整型的运算符是 。
A) %= B) / C) = D) *=
5. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是 。
2
A) 0 B) 0.5 C) 1 D) 2
6. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是 。
A) 把x和y按从大到小排列 B) 把x和y按从小到大排列 C) 无确定结果 D) 交换x和y中的值 7. 下列变量定义中合法的是 。
A)short_a=1-.le-1; B)double b=1+5e2.5; C)long do=0xfdaL; D)float 2_and=1-e-3; 8.若变量已正确定义并赋值,符合C语言语法的表达式是 。
A)a=b=7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b
9. 若有float x;则sizeof(x)和sizeof(float)两种描述 。
A)都正确 B)都不正确 C)前者正确 D)后者正确
10. 有整型变量x,单精度变量y=5.5,表达式x=(float)(y*3+((int)y)%4)执行后,x的值
为( )。
A)17 B)17.500000 C)17.5 D)16 11. 已知float x=1,y;则y=++x*++x的结果是 。
A)y=9 B)y=6 C)y=1 D)表达式是错误的 12. 下列关于单目运算符++、--的叙述中正确的是 。
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D)它们的运算对象可以是char型变量、int型变量和float型变量 13. 已定义ch为字符型变量,下列赋值语句中错误的是 。
A)ch='\\'; B)ch=62+3; C)ch=NULL; D)ch='\\xaa'; 14. 假定有以下变量定义,则能使值为3的表达式是 。
int k=7,x=12;
A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)
15. 设有“int x=11;”则表达式(x++*1/3)的值是 。
A)3 B)4 C)11 D)12
16. 已定义c为字符型变量,则下列语句中正确的是 。
A)c=’97’ B)c=“97” C)c=97 D)c=“a” 17. sizeof(float)是 。
A)一个双精度型表达式 B)一个整型表达式 C)一种函数调用 D)一个不合法的表达式 18. 有以下定义语句:
double a,b; int w; long c;
若各变量已正确赋值,则下列选项中正确的表达式是 。 A)a=a+b=b++ B)w%((int)a+b) C)(c+w)%(int)a D)w=a=b
19. 若变量a是int类型,并执行了语句:a=‘A’+1.6;,则正确的叙述是 。
3
A)a的值是字符C B)a的值是浮点型
C)不允许字符型和浮点型相加 D)a的值是字符’A’的ASCII值加1
20. 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是 。
A)6.500000 B)6 C)5.500000 D)6000000 21. 在下列选项中,不正确的赋值语句是 。
A)++t; B)n1=(n2=(n3=0)); C)k=i==j; D)b+c=1;
22.已知char a; int b; float c; double d; 则表达式a+b * c-d的结果为_______型。
A)char B)int C)float D)double 23. 若x 为int型变量,则执行语句x=10; x+=x=x-x后,x的值为_______。
A)0 B)10 C)20 D)30
24. 若x、a、b、c均 为int型变量,则执行表达式x= (a = 4, b = 8, c = 12)后,x的
值为_______。
A)4 B)8 C)12 D)24 25. 在C程序中,x + y是_______、x + y;是_______。
A)表达式、语句 B)表达式、表达式 C)语句、语句 D)语句、表达式
26.假设变量a是整型,b是实型,c是双精度型,则表达式30+a+c*b的值的数据类型
是 。
A) int B) float C) double D) 不确定 27.在C语言中,char型数据在内存中的存储形式是 。
A)补码
B)反码
C)原码
D)ASCII码
28.执行下列程序片段时输出结果是 。 int x=13,y=5;
printf(“%d”,x%=(y/=2));
A)3 B)2 C)1 D)0
二.填空题
1.在C语言中所提供的数据结构是以数据类型形式出现的,其中的基本类型包括int 型 即_ __、float型即_ __、double型即_ __、char型即_ __等。 2. C语言中的标识符只能由三种字符组成,它们是 、 和 。
3. C程序中的字符常量是用_ __括起来的一个字符;除此之外,还允许用一种特殊形式的字符常量,是以_ __开头,被称为转义字符。
4.字符串常量是一对_ __括起来的字符序列,且以_ __结束。 5.常量是指在程序执行过程中其值 __改变的量。 6.变量是指在程序执行过程中其值_ _的量。 7.C实型变量分为_ _和_ _两类。
8.转义字符'\\n'表示_ _,使光标移到屏幕上下一行开头。 9.一个字符变量在内存中占_ _字节。
10.一个字符数据既可以以字符形式输出,也可以以_ _形式输出。 11.字符串常量是用_ _括起来的字符序列。
12.在进行运算时,不同类型的数据必须_ _,然后进行运算。
4
13.可以利用_ _运算符将一个表达式的值转换成指定的类型。
14.有两种类型转换,一种是在运算时不必用户指定,系统自动进行类型转换;另一种是 _ _。
15.两个整数相除的结果是_ _。 16.求模运算符(%)只能用于_ _操作数。
17.一个表达式的最后加上一个_ _就成了一个语句。
18.若int x = 3,则执行表达式x*= x+= x - 1后x的值为_ _。 19.若a是int型变量,则表达式((a=4*5,a*2),a+6)的值为 。
20.若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为 。 21.若a是int型变量,则执行表达式a=25/3%3后a的值为 。 22.若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++ x的值为 ,n的值为 。
四、程序阅读题
1.写出以下程序运行的结果 。 #include
int i,j,m,n; i=8; j=10; m=++i; n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n); return 0; }
2. 写出以下程序运行的结果 。 #include
int a = 7, b = 9; a = a + b; b = a - b; a = a - b; }
3. 写出以下程序运行的结果 。 #include
5
printf (\
return 0;
}
int a, b, c;
a = (b = (c = 3) * 5)*5;
printf (\
return 0;
4. 已知字母A的ASCII码为65。以下程序运行后的输出结果是______。 #include
5.写出以下程序的输出结果。 #include
printf(“%d %d\\n”,(++x,y++),z+2); return 0 ; }
char a, b;
a='A'+'5'-'3'; b=a+'6'-'2'; printf(\
return 0;
第3章 编程语句 —— 简单程序构建的方法
一.选择题
1.以下程序的输出为 。 #include
double x=213.82631; printf(\return 0; }
A) 213.82 B) 21.38e+01 C) 2.14e+02 D) -2.14e2 2.语句printf(“%%d%d”, 123); 将输出:
A) 3%d B) %?23 C) ?23 D)上述语句语法有错 3.以下程序的输出结果是 。 #include
6
{ }
A)x/y&z=0 B)x/y&z=1 C)s=x/y&z=0 D)x/y&z=1 s=x^y&~z =1 x^y&~z =1 x^y&~z =0 x^y&~z =0 4. 执行语句scanf (“%c%c%c”,&c1,&c2,&c3),输入abc时,变量c1、c2、c3的值分别为 。
A)'a', 'b', 'c' B)'a','b', '' C)'a', '', 'b' D)'a','','c' 5.有以下程序段: int m=0,n=0;char c='a'; scanf(\,&m,&c,&n); printf(\
若从键盘上输入:10A10<回车键>,则输出结果是 。
A)10,A,10 B)10,a,10 C)10,a,0 D)10,A,0 6.若有以下变量说明和数据的输入方式,则正确的输入语句为 。 变量说明:float x1,x2; 输入方式:4.52<回车> 3.5<回车>
A)scanf(“%f,%f”,&x1,&x2); B)scanf(“%f%f”,&x1,&x2); C)scanf(“%3.2f %2.1f”,&x1,&x2); D)scanf(“%3.2f%2.1f”,&x1,&x2); 7. 下面程序的运行结果是 。 #include
A)DATA=22 B)DATA=21 C)DATA=9 D)以上都不对 8. 设c1,c2均是字符型变量,则以下不正确的函数调用为 。 A)scanf(“c1=ì2=%c”,&c1,&c2); B)c1=getchar( ); C)putchar(c2); D)putchar(c1,c2); 9.若a为整型变量,则以下语句 。 a=-2L;printf(“%d\\n”,a);
(A)赋值不合法 (B)输出值为-2 (C)输出为不确定值 (D)输出值为2 10.有以下程序 #include
7
int x=3,y=2,z=1;
printf (\printf (\
return 0;
printf(\
return 0;
{ int x=102,y=012;
printf(“-,-\\n”,x,y); return 0; }
执行后输出结果是 。
(A)10,01 (B)02,12 (C)102,10 (D)02,10 11. 以下程序输出的结果是 。 #include
A)*a=chinazhongguo* B)*a=chinazhongguo* b=**chi* *b=chi * C)*a=* chinabeijing* D)*a= chinazhongguo* *b=chi* *b=chi *
12.若变量c定义为float类型,当从终端输入283.1900
A)scanf(“%f”,c); B)scanf(“%8.4f”,&c); C)scanf(“%6.2f”,&c); D)scanf(“?”,&c); 13.设有如下程序段 int x=2002,y=2003; printf(\
则以下叙述中正确的是________。
A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B)运行时产生出错信息 C)输出值为2002 D)输出值为2003
14. putchar 函数可以向终端输出一个 。 A)整型变量表达式的值 B)实型变量的值 C)字符串 D)字符或字符型变量的值
15.下列函数中能够向终端输出一个字符或字符型变量值的是 。 A) gets B) puts C) getchar D) putchar 16. 若有下列语句 char c=’A’; printf(“%d”,c);
则输出的结果是 。
A) A B) c C) 65 D) 错误的语句
17. 下列程序输入’a’字母后,执行程序后输出的结果是 。
8
printf(\printf(\
return 0;
#include
A)65 B) A C) 97 D) a 18.执行下列程序片段时输出结果是 。 float x=-1023.012; printf(“\\n%8.3f,”,x); printf(“.3f”,x);
A)1023.012, -1023.012 B)-1023.012,-1023.012 C)1023.012,-1023.012 D)-1023.012, 1023.012
19.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,正确的数据输入方式是 。 int a1,a2; char c1,c2;
scanf(“%d%c%d%c”,&a1, &c1,&a2, &c2); A)10A 20B↙ B)10 A 20 B↙ C)10A20B↙ C)10A20 B↙
20.对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按 方式输入数据。
int k1,k2,k3,k4; scanf(“%d%d”,&k1,&k2); scanf(“%d,%d”,&k3,&k4);
A)1020↙ B)10 20↙ C)10,20 ↙ D)10 20↙ 1020↙ 10 20↙ 10,20↙ 10,20↙
21.阅读以下程序,当输入数据的形式为25,13,10
int x,y,z ;
scanf(\ printf(\return 0 ; }
A)x+y+z=48 B)x+y+z=35 C)x+z=35 D)不确定值
22.阅读以下程序,若运行结果为如下形式 ,输入输出语句的正确内容是 。 main()
9
char c; c=getchar(); c=c-32;
printf(\
return 0;
{int x; float y; printf(\输入语句 输出语句 }
输入形式 enter x,y: 2 3.4 输出形式 x+y=5.40
A)scanf(\B)scanf(\C)scanf(\D)scanf(\
23.根据定义和数据的输入方式,输入语句的正确形式为 。 已有定义: float fl,f2; 数据的输入方式:4.52
3.5
A) scanf(\C) scanf(\
24.printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 。
A) 从左起输出该字串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字串,左补空格 D) 输出错误信息
25.printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式 。
A) 从左起输出该字串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字串,左补空格 D) 输出错误信息
26.已有定义 int a=-2;和输出语句:printf(\以下正确的叙述是 。 A) 整型变量的输出格式符只有%d-种
B) %x 是格式符的-种,它可以适用于任何-种类型的数据
C) %x 是格式符的-种,其变量的值按+六进制输出,但%8lx 是错误的 D) %8lx 不是错误的格式符,其中数字8规定了输出字段的宽度 27.以下说法正确的是 。
A) 输入项可以为-实型常量,如scanf(\
B) 只有格式控制,没有输入项,也能进行正确输入,如scanf(\
C) 当输入-个实型数据时,格式控制部分应规定小数点后的位数,如scanf(\D) 当输入数据时,必须指明变量的地址,如scanf(\
28.根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为: 。 main()
{char ch1 ,ch2 ,ch3; 输入语句
printf(\
10
输入形式: A B C 输出形式: A B
A) scanf(\ C) scanf(\29.有输入语句:scanf(\为使变量a的值为1,b为3,c为2, 从键盘输入数据的正确形式应当是 。
A) 132(回车) B) 1,3,2(回车) C) a=1b=3c=2(回车) D) a=1,b=3,c=2(回车)
二.填空题
1.语句printf(\的输出结果是 。 2.以下printf语句中=的作用是 ,输出结果是 。
#include
int i=3;
printf(“##=\\n”,i,i); return 0;
}
a+=b; b=a-b; a-=b;
3.若a和b均为int型变量,则以下语句的功能是 。 4. 下列程序的输出结果是14.00,请填空使程序完整。 int main ( ) { int a=9,b=2;
float x= , y=1.1 , z; z=a/2+b*x/y+1/2; printf(“%5.2f\\n”,z); return 0; }
5. 下面的使用scanf函数的输入方式有 种。 int main() {
int a,b;
scanf(“%d%d”,&a,&b); return 0; }
三.程序阅读
1.下面程序的输出结果是 。
#include
11
}
int x='f';
printf(\
return 0;
2.以下程序的输出结果为 。
int main() { }
3.用下面的scanf函数输入,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,问在键盘上如何输入? int main ( ) { int a,b; float x,y; char c1,c2;
scanf(“a=%d b=%d”,&a,&b); scanf(“%f%f”,&x,&y); scanf(“%c%c”,&c1,&c2); return 0 ; }
4.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是______。 #include
5.写出以下程序的输出结果。 int main ( ) { int a=12345;
float b=-198.345, c=6.5;
printf(“a=M,b=%-10.2e,c=%6.2f\\n”,a,b,c); return 0; }
7. 写出以下程序的输出结果。
12
printf(“*%f,%4.3f*\\n”,3.14,3.1415);
return 0;
char a,b; a=getchar(); scanf(\a=a-'A'+'0';b=b*2; printf(\
return 0;
int main ( ) { int a=252;
printf(“a=%o a=%#o\\n”,a,a); printf(“a=%x a=%#x\\n”,a,a); return 0; }
8. 写出以下程序的输出结果。 int main ( )
{ int x=12; double a=3.1415926; printf(“m##,%-6d##\\n”,x,x); printf(“%f##\\n”,a);
return 0; }
四.程序改错
1.找出下面程序中的错误,使之能够正常执行。 #include
int x;double y; scanf(“%d%f”,&x,&y); return 0 ; }
2.找出下面程序中的错误,使之能够正常执行。 #include
int x, y,sum;
scanf(“%d%d”, x, y); sum=x+y ;
printf(“sum =%d”,sum); return 0; }
3.找出下面程序中的错误,使之能够正常执行。 #include
int x ; char y ; x=getchar() ; y=getchar() ;
13
putchar(x+y) ; return 0 ; }
第4章 算法 —— 程序设计的核心
一.选择题
1.程序流程图中带箭头的线段表示 。
A) 处理操作 B) 数据流 C) 控制流 D) 调用关系 2.程序流程图中的菱形框表示 。
A) 输入 B) 输出 C) 判断 D) 循环 3.下面的流程图是 结构的程序设计。
模块A No 条件? A) 顺序 B) 顺序加选择 C) 判断 D) 循环
4. NS图完全取消了 ,不允许有随意的控制流,全部算法写在一个矩形框内。 A) 流程线 B) 输出 C) 判断 D) 循环 二.填空题
1.程序设计的核心是 。
2.算法描述的方法包括 、 和 。 3.程序设计的三种基本结构包括 、 和 。 4.程序设计的思想包括 和 。
第5章 判断与循环 —— 一般复杂问题
程序设计方法
一.选择题
1. 逻辑运算符两侧运算对象的数据类型 。
A)只能是0或1 B)只能是0或非0正数
14
C)只能是整型或字符型数据 D)可以是任何类型的数据 2. 下列运算符中优先级最高的是 。 A) < B) 十 C) && D) !=
3.能正确表示\当x 的取值在[1,10]和[200,210]范围内为真,否则为假\的表达式是 。 A) (x>=1) &&(x<=10) &&(x> = 200) &&(x<=210) B) (x>=1) || (x<=10) ||(x>=200) ||(x<=210) c) (x>=1) &&(x<=10)||(x>= 200) &&(x<=210) D) (x > =1)||(x< =10) && (x> = 200)||(x<=210)
4.判断char型变量ch是否为大写字母的正确表达式是 。 A) ' A' <=ch<='z' B) (ch> = 'A')&(ch<=' z' ) C) (ch>=' A' )&&(ch<='z') D) (' A' < = ch)AND('z'> = ch) 5.设x,y 和z是int型变量,且x = 3,y= 4,z= 5,则下面表达式中值为0的是 。 A) 'y'&&'y' B) x < =y C) x||y+z&&y-z D) !(x
7.若希望当A的值为奇数时,表达式的值为\真\的值为偶数 表达式的值 为\假\。则以下不能满足要求的表达式是 。 A) A%2==1 B) !(A%2 = =0) C) !(A%2) D) A%2 8. 若有程序段如下: a=b=c=0;x=35; if(!a)x--;
else if(b);if(c)x=3; else x=4;o;
执行后,变量x的值是 。 A)34 B)4 C)35 D)3 9.下列if语句中,不正确的是 。
A)if (x if (x>=10) { } x-=3; 15 break; if(x%2==1) x+=5; continue; } 变量x的值最终为 。 A)11 B)12 C)13 D)10 11.与“for (i=0;i<10;i++) putchar ('a'+i);”功能不同的语句是 。 A)for (i=0;i<10;)putchar ('a'+(++i)); B)for (i=0;i<10;) putchar ('a'+(i++)); C)for (i=0;i<10;putchar ('a'+i),i++); D)for (i=0;i<=9;i++)putchar ('a'+i); 12.循环控制语句“while (!scanf (“%d”,&i)getchar ( );”执行的情况是 。 A)循环输入字符,遇文件结束符EOF退出 B)循环条件有错,不能执行 C)若输入数据i有错,暂停等待处理 D)键入i值后,回车退出循环 13. 若输入字符串:abcde<回车>,则以下while循环体将执行 次。 While ((ch=getchar( ))== ' e ')printf(\A)4 B)5 C)0 D)任意 14.设j为int型变量,则下面for 循环语句的执行结果是 。 for (j=10;j>3;j--) { } A)6 3 B)7 4 C)6 2 D)7 3 15. 以下程序的输出结果是 。 #include A)-1 1 B)0 1 C)1 0 D)0 0 16. 下面程序的输出结果是 。 #include A)有语法错,不能通过编译 B)通过编译,但不能连接 C)x=5 D)a=b=0 16 if (j%3)j--; --j;--j; printf (\ int a=-1,b=1,k; if((++a<0)&&!(b--<=0)) printf(\else printf(\ return 0; int x=5,a=0,b=0; if(x!=(a+b)) printf(\else printf(\ return 0; 17. 有以下程序 #include 程序运行后的输出结果是 。 (A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 3 18.下面程序运行结果是 。 #include A)20 B)25 C)15 D)10 19. 定义:int x=7,y=8,z=9;后,则下面表达式为0的是 。 A)' x ' && ' y ' B)x<=y C)x||y+z&&y-z D)!((x 20. 若w=1,x=2,y=3,z=4,则条件表达式w 其输出结果是 。 A)1 B)2 C)3 D)4 17 int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf(\ return 0; int a,b,c,d,x; a=c=0; b=1;d=20; if(a) d=d-10; else if(!b) if(!c)x=15; else x=25; printf(\ return 0; int w=4,x=3,y=2,z=1; printf(\ return 0; 22. 有以下程序 #include 执行后输出结果是 。 A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 23. 以下程序的输出结果是 。 #include A)-1 1 B)0 1 C)1 0 D)0 0 24. 阅读以下程序: #include 程序执行后,如果从键盘上输入5,则输出结果是 。 A)3 B)4 C)5 D)6 25. 以下程序的输出结果是 。 #include int n=4; while(n--) printf(\int x; scanf (\ if (x--<5) printf(\else printf(\int a=-1,b=1,k; if((++a<0)&&!(b--<=0)) printf(\printf(\else int i=1,j=1,k=2; if((j++||k++)&&i++) printf(\ return 0; return 0; return 0; return 0; 18 } A)2 0 B)31 C)321 D)210 26. 有以下程序 #include printf(\ printf(\ return 0; } 程序运行后的输出结果是 。) A)2 B)3 C)43 D)44 27. 下列条件语句中,功能与其他语句不同的是 。 A)if(a) printf(\B)if(a==0) printf(\C)if(a!=0) printf(\D)if(a==0) printf(\28. 下面程序的输出是 。 #include break; } printf(\ return 0; } A)x=4,y=4,a=1 B)x=5,y=5,a=1 C)x=5,y=4,a=3 D29. 下面程序段的运行结果是 。 int n=0; while (n++<=2); printf (\ 19 )x=5,y=4,a=1 A)2 B)3 C)4 D)有语法错误 30. 已知x、a、b、c、d均为int型变量,则执行如下程序段后,x的值是_______。 a=1; b=2; c=3; d=4; x=(a A)4 B)3 C)2 D)1 31. 运行下列程序段后x的值是_______。 int a,b,c,x; a=0; b=0; c=0; x=7; if(!a) x--; else if(b); if(c) x=3; else x=4; A)4 B)6 C)7 D32. 运行下列程序段后x的值是_______。 int a,b,c,d; a=1; b=7; c=15; d=10; if(a A)1 B)2 C)6 D33. 如下程序的输出结果是_______。 #include if(b<0) c=0; else c++; printf (\ return 0; } A)0 B)1 C)5 D34. 以下五条语句中有_______是合法的。 if(a=b) x++; if(a= )3 )7 )6 )4 35. 关于以下三条语句的描述中,正确的是_______。 ? if(a) a=1;else a=2; ? if(a==0) a=2;else a=1; ? if(a!=0) a=1;else a=2; A)三条语句相互等效 B)三条语句中?与?等效 C)三条语句中??与?等效 D)三条语句各不等效 36. 定义如下变量int n=10;则下列循环的输出结果是_______。 while(n>=7) { n--; printf(“%d\\n”,n); } A)10 B)9 C)10 D)9 9 8 9 8 8 7 8 7 7 6 37. 以下程序执行后,输出结果是_______。 #include A)1 B)1 C)2 D)2 2 2 3 3 38.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是______。 A)k%2 B)k%2==1 C)(k%2)!=0 39.有以下程序 #include 21 int n=0; while(n<=2) { } n++; printf(\ return 0; D)!k%2==1 int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf(\ return 0; 程序运行后的输出结果是______。 A)1 2 3 是______。 A)1 二、填空题 1. 下面程序的功能是在屏幕上显示如下图形: B)2 C)3 D)4 B)2 3 4 C)2 2 3 D)2 3 3 40.若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 填空: #include int i=1,j; while(i<=5) { printf(\j=i; while( ) { j--;} i++; } return 0; } 2. 执行下面程序 #include scanf(\ if(x++>5) printf(\ else printf(\ return 0; 22 } 若输入5,其输出结果是 。 3. 以下程序运行后的输出结果是 。 #include 4. 以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。 #include float x[1000],sum=0.0,ave,a; int n=0,i; printf(\:\\n \while(a>=0.0&& n<1000) { sum+ ;x[n]= ; n++;scanf (\} ave= ; printf(\:\\n \printf(\i=0; while(i {if( ) printf(\i++;} return 0; } 5. 以下程序将两个数从小到大输出。 #include float a,b, ; scanf( ,&a,&b); if (a>b) { t=a; ;b=t;} 23 int a=1,b=3,c=5; if (c=a+b) printf (\else printf (\return 0; printf (\return 0; } 6. 若有以下程序: #include 执行后输出结果是 。 7.下面的if语句与y=(x>=10)?3*x-11:(x<1)?x:2*x-1;的功能相同,请补充完整。 if ( ) if ( )y=2*x-1; else y=x; else y=3*x-11; 8.写出程序段的输出结果 。 int a=100; if (a>100) printf (\else printf (\9. 有以下程序 #include 执行后输出结果是 。 11. 执行了以下程序片断后,若原来x=9,则输出结果为_ _;若原来x=6,则输出结果为_ _。 if(x++>8) printf(\else printf(\ 24 int a=4,b=3,c=5,t=0; if(a return 0; int a=5,b=4,c=3,d=2; if(a>b>c) printf(\ printf(\ printf(\else if((c-1>=d)==1) else return 0; 12. C语言提供了6种关系运算符_ __、_ __、_ __、_ __、_ __、_ __。 13. C语言中,关系表达式的值是一个_ __即真或假,一般以_ __代表真,以_ __代表假。 14. C语言提供三种逻辑运算符,包括_ __、_ __、_ __,这三种逻辑运算符中_ __的优先级最高。 15. 在if-else结构中,else子句不能作为语句单独使用,必须与_ __配对使用,且若if和else后面有多条语句,则需用_ __将其成为一个复合语句。 16. C语言中唯一的一个三目运算符是_ __,其一般形式为_ __。 17. while循环结构中,当表达式为_ __时执行其中的内嵌语句;循环体如果包含一个以上的语句,应该用_ __括起来。 18. 程序功能:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空,将程序补充完整。 #include 三.程序阅读 1. 执行程序之后,输入2↙6↙3↙ ,以下程序运行后的输出结果是______。(↙表示回车) #include int a,b,c,d; printf(\请输入三个整数:\\n\scanf(\if(a>b) d=a; else d=b; if(c>d) d=c; 25 float x,xmax,xmin; printf(\输入成绩:\\n\scanf(\xmax=x; ; while( ) { } printf(\ if(x>xmax) xmax=x; if( ) xmin=x; scanf( ); return 0; 第7章 复杂数据类型—数据描述与扩展存储方法 一.选择题 1.在C语言中,引用数组元素时,其数组下标的数据类型允许是 。 A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型的表达式 2.以下对一维整型数组a的正确说明是 。 A)int a(10) ; B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n); int a[SIZE]; int a[n]; 3.若有定义:int a[10],则对数组a元素的正确引用是 。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 4.以下能对一维数组a进行正确初始化的语句是 。 A) int a[10]=(0,0,0,0,0); C) int a[]={0}; B) int a[10]={}; D) int a[2]={0, 0, 0}; 5.在C语言中,下面关于数组的描述正确的是 。 A) 数组的大小是固定的,但可以有不同类型的数组元素 B) 数组的大小是可变的,但所有数组元素的类型必须相同 C) 数组的大小是固定的,所有数组元素的类型必须相同 D) 数组的大小是可变的,可以有不同的类型的数组元素 6.若有说明int a[3][4]={0}; 则下面正确的叙述是 。 A) 只有元素a[0][0]可得到初值0 B) 此说明语句不正确 C) 数组a 中各元素都可得到初值,但其初值不一定是0 D) 数组a 中各元素都可得到初值0 7.若有二维数组a有m列,则在a[i][j]前的元素个数为 。 A) j*m+i C) i*m+j-1 B) i*m+j D) i*m+j+1 B) char s[5]={?a?,?b?,?c?}; D) char s[5]=”abcdef”; B) if(strcmp(s1,s2)) D) if(strcmp(s1,s2)>0) 8.下面对s的初始化,其中不正确的是 。 A) char s[5]={“abc”}; C) char s[5]=””; A) if(s1>s2) C) if(strcpy(s2,s1)>0) 9.判断字符串s1是否大于字符串s2,应当使用 。 10.调用strlen(\的结果为 。 A) 4 B) 5 C) 8 D) 10 11.函数调用“strcat(strcpy(str1,str2),str3)”的功能是 。 A) 将字符串str1复制到字符串str2后再连接到字符串str3之后 B) 将字符串str1连接到字符串str2后再复制到字符串str3之后 C) 将字符串str2复制到字符串str1后再将字符串str3连接到str1之后 36 D) 将字符串str2连接到字符串str1后再将str1复制到字符串str3中 30.以下程序的运行结果是 。 struct cargo { int num; char name[12]; float price; }; int main() { int i; struct cargo cargo[4]={{1,\ {3,\ for(i=0;i<=2;i+=2) printf(\ return 0; } A)DVD CD B)CD VCD C)DVD VCD D)DVD BLANK 二.分析程序写结果 1.运行下面程序,输入为0 1 2 3 4 5 6 7 8 9 时,请给出程序运行结果。 int main() { int arr[10],i,j,temp; printf(\ value of array:\\n\ for(i=0;i<10;i++) scanf(\ for(i=0,j=9;i<=j;i++,j--) { temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } for(i=0;i<10;i++) printf(\ return 0; } 2.请给出程序运行结果。 int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int k,s,i; float ave; for(k=s=i=0;i<10;i++) { 37 if(a[i]%2!=0) continue; s+=a[i]; k++; } if(k!=0) { ave=s/k; printf(\ } return 0; } 3.请给出程序运行结果。 #define N 7 int main() { int i,j,a[N][N]; for (i=1;i 三.阅读程序并填空 1.以下程序的功能是输入一个整数,插入到一个已排好序的数组中,使其仍然有序。请填空。 int main() { int a[10]={2,5,8,10,15,20,28,37}; int x,i,n=8; scanf(\ for(i=n-1;i>=0;i--) if(a[i]>x) 38 else break; n++; for(i=0;i 2.下面程序的功能是输出5*6阶矩阵中值最大的元素值。请填空。 int main() { int i,j,a[5][6],max; for(i=0;i<5;i++) for(j=0;j<6;j++) scanf(\ ); max=a[0][0]; for(i=0;i<5;i++) for(j=0;j<6;j++) if( ) max=a[i][j]; printf(\ return 0; } 3.对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。程序如下,请填空。 int main() { char str1[100],str2[100],c; int i,s; printf(\ gets(str1); printf(\ gets(str2); i= ; while((str1[i]==str2[i])&&(str1[i]!= )) i++; s= ; printf(\ return 0; } 9.下面程序的功能是输出结构体数组的内容,请将程序补充完整。 struct { char name[10]; 39 char sex; int age; }p[3]={\int main() { int i; for (i=0;i<3;i++) ; return 0; } 第8章 函数 — 复杂程序的实现方法 一.选择题 1.以下说法中错误的是 。 A)C语言总是从main函数开始执行 B)函数在程序中出现的先后位置与其被调用的顺序无关 C)一个完整的C程序可由若干个C源程序文件组成 D)main函数的定义必须出现在所有其他函数之前,否则将产生运行错误 2.C语言规定,函数返回值的类型是 。 A)由return语句中表达式的类型所决定 B)由调用该函数的主调函数所具有的类型决定 C)由定义该函数时所指定的函数类型决定 D)由系统随机决定 3.以下说法中正确的是 。 A)main函数和其他函数间可相互调用 B)main函数可以调用其他函数,但其他函数不能调用main函数 C)因为main函数可不带参数,所以其后的参数小括号能省略 D)根据情况可以不写main函数 4.以下函数定义中正确的是 。 A)fun(float x,y) B)fun(int x, int y) C)fun(int x, int y); D)void fun(int x, int y) { return x+y; } { return x+y; } { return x+y; } { return x+y; } 5.以下说法中正确的是 。 A)在一个函数的执行过程中又出现对其他函数的调用,则称此函数为递归函数。 B)递归函数中必须存在递归结束的条件 C)函数的递归调用可以提高程序的执行效率 D)递归函数中必须出现return语句 6.以下有关“递归函数”说法中正确的是 。 A)既允许直接递归调用,也允许间接递归调用 B)只允许直接递归调用 C)既不允许直接递归调用,也不允许间接递归调用 D)只允许间接递归调用 7. C语言中,函数调用时若实参是数组名,则传递给被调函数对应形参的是 。 A) 整个数组 B) 数组元素的个数 40
正在阅读:
C语言习题及解答10-21
DW700电动机保护说明书-V3.56(打印版) - 图文03-01
甲醇气化工艺设计05-01
物流企业财务管理串讲笔记04-21
村改居10-31
水泵站45学时大纲06-27
2019年关于春游作文【整合】06-13
寻个对手闯江湖散文03-30
我的心,只爱你心情日记10-29
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 习题
- 解答
- 语言
- 齐桓晋文之事导学案
- 论林权的法律构造
- 图解装修全过程(56P)
- 2000-2013年专四语法术语专题练习NO ANSWER
- 镇江67名官员落马,干得漂亮!看看有没有你认识的
- 诗经研究
- 2011-2012学年河北衡水市重点中学高二第二次阶段考试语文试卷M
- 《悟真篇》 全卷(译文)
- 党史研究的一项创新之作
- 飞思卡尔杯全国大学生智能汽车竞赛 - 图文
- 民营银行发展外文文献翻译最新译文3800多字
- 沟通中的情绪管理
- 中考压轴题型之 平行四边形的存在性
- 信息在语文教学中的运用
- Lesson Plan for Unit 10(上)
- my favorite traditional Chinese story
- 一、殷墟概述 - 图文
- KWIC实验报告(C++)
- 上海及全国各省对挂牌E板新三板企业的补贴政策介绍
- 2008年度南京市软件企业技术和管理人才奖励名单