第二周:计算
2.1 变量随堂测验
1、以下哪些是有效的变量名?
A、main
B、4ever
C、monkey-king
D、__int
2、给定: int a,b; scanf("%d %d", &a, &b); 则以下哪些输入方式是正确的?
A、1 2
B、1,2
C、1(回车)2
D、1、2
3、给定: int a,b; 以下哪些scanf的使用是正确的?
A、scanf("%d", &a); scanf("%d", &b);
B、scanf("%d %d", &a, &b);
C、scanf("%d, %d", &a, &b);
D、scanf("%d %d", a, b);
4、给定以下代码段: int a,b=0; 则a的初始值是0
5、写出下式的运算结果: 10/3.0*3
6、写出下式的运算结果: 10/3*3.0
2.2 表达式随堂测验
1、写出以下代码执行后,t1和t2的值,以空格隔开: int a=14; int t1 = a++; int t2 = ++a;
2、写出以下表达式的结果,一个结果一行: 6 + 5 / 4 - 2 2 + 2 * (2 * 2 - 2) % 2 / 3 10 + 9 * ((8 + 7) % 6) + 5 * 4 % 3 * 2 + 3 1 + 2 + (3 + 4) * ((5 * 6 % 7 / 8) - 9) * 10
四川轻化工大学C语言第1-3章单元测验一(出题人:林山)
1、以下关于C语言数据类型使用的叙述中错误的是______。
A、若要准确无误差地表示一个自然数,应使用整数类型。
B、若要保存带有多位小数的数据,应使用双精度类型。
C、若要处理如"人员信息"等含有不同类型的相关数据,应自定义结构体类型。
D、若只处理"真"和"假"两种逻辑值,应使用逻辑类型。
2、以下选项中,合法的一组C语言数值常量是______。
A、028 .5e-3 -0xf
B、12. 0Xa23 4.5e0
C、1774 e1.5 0abc
D、0x8A 10,000 3.e5
3、以下选项中不能作为C语言合法常量的是______。
A、'cd'
B、0.1e+6
C、"\a"
D、'\011'
4、以下说法正确的是______。
A、C语言只接受十进制的数
B、C语言只接受二进制、八进制、十六进制的数
C、C语言只接受二进制、十进制、十六进制的数
D、C语言只接受八进制、十进制、十六进制的数
5、以下选项中表示一个合法的常量是(说明:符号口表示空格)______。
A、9口9口9
B、0Xab
C、123E0.2
D、2.7e
6、关于C语言的符号常量,以下叙述中正确的是______。
A、符号常量的符号名是标识符,但必须大写
B、符号常量是指在程序中通过宏定义用一个符号名来代表一个常量
C、符号常量在整个程序中其值都不能再被重新定义
D、符号常量的符号名必须是常量
7、以下选项中,合法的数值型常量是______。
A、3.1415
B、"A"
C、092
D、0xDH
8、C语言的常量包括数值型常量和符号常量,以下叙述正确的是______。
A、数值型常量1.0和1所占内存的大小不同
B、不能用sizeof求数值型常量所占内存的大小
C、不能用sizeof求符号常量所占内存的大小
D、可以用A取得符号常量A所占内存的首地址
9、以下选项中,能用作数据常量的是______。
A、o115
B、0118
C、1.5e1.5
D、115L
10、以下叙述中错误的是______。
A、非零的数值型常量有正值和负值的区分
B、常量是在程序运行过程中值不能被改变的量
C、定义符号常量必须用类型名来设定常量的类型
D、用符号名表示的常量叫符号常量
11、设有两行定义语句: int scanf; float case; 则以下叙述正确的是______。
A、第2行语句不合法
B、两行定义语句都合法
C、第1行语句不合法
D、两行定义语句都不合法
12、关于C语言的变量,以下叙述中错误的是______。
A、变量所占的存储单元地址可以随时改变
B、所谓变量是指在程序运行过程中其值可以被改变的量
C、程序中用到的所有变量都必须先定义后才能使用
D、由三条下划线构成的符号名是合法的变量名
13、以下程序执行后sum的值是______。 main() { int i, sum; for(i=1; i<6; i++) sum+=i; printf("%d\n",sum); }
A、15
B、14
C、不确定
D、0
14、有以下程序 #include main() { char *p1 = 0; int *p2 = 0; float *p3 = 0; printf("%d,%d,%d\n", sizeof(p1), sizeof(p2), sizeof(p3)); }
A、1,1,4
B、1,2,4
C、1,4,8
D、4,4,4
15、关于C语言的变量名,以下叙述正确的是______。
A、变量名必须以字母开头
B、变量名不可以与预定义标识符同名
C、变量名不可以与关键字同名
D、变量名是没有长度限制的
16、以下选项中合法的变量是______。
A、sizeof
B、5a
C、A%
D、_10_
17、以下选项中不是C语言数据类型的是______。
A、整型int
B、浮点型float
C、字符型char
D、字符串型string
18、C语言中,最基本的数据类型包括______。
A、整型、实型、字符型
B、整型、字符型、数组
C、整型、实型、逻辑型
D、整型、实型、结构体
19、以下选项中可用作C程序合法整数的是______。
A、0x77
B、1 2(数字间有一个空格)
C、xff
D、018
20、以下不属于C语言整型常量的是______。
A、-018
B、0L
C、0Xa
D、200U
21、与十进制数200等值的十六进制数为______。
A、A8
B、A4
C、C8
D、C4
22、C语言整数不包括______。
A、带小数点的整数
B、正整数
C、负整数
D、无符号整数
23、以下选项中可作为C语言合法整数的是______。
A、10110B
B、0386
C、0Xffa
D、x2a2
24、以下非法的定义语句是______。
A、unsigned int a=-100u;
B、long b=0L;
C、short c2=0123;
D、int d=0x0;
25、以下叙述中正确的是______。
A、整型变量可以分为int型、short型、long型和unsigned型四种
B、在C程序中书写的八进制和十六进制数,可以是浮点数
C、八进制数的开头要使用英文字母o,否则不能与十进制区分开
D、英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符
26、若函数中有定义语句:int k;,则______。
A、系统将自动给k赋初值0
B、这时k中的值无定义
C、系统将自动给k赋初值-1
D、这时k中无任何值
27、在C语言中,不正确的short int类型的常数是______。
A、32768
B、0
C、037
D、0xAF
28、以下关于long、int和short类型数据占用内存大小的叙述中正确的是______。
A、均占4个字节
B、根据数据的大小来决定所占内存的字节数
C、由用户自己定义
D、由C语言编译系统决定
29、在C语言中,合法的长整型常数是______。
A、OL
B、4962710
C、324562
D、216D
30、以下选项中不属于C语言的类型是______。
A、signed short int
B、unsigned char
C、signed long
D、long short
31、以下选项中,合法的实数是______。
A、E1.3
B、4.5E2
C、7.11E
D、1.2E1.2
32、以下选项中,合法的C语言实数是______。
A、3.1e0.4
B、2e0
C、E13
D、7.12E
33、以下选项中,合法的实数是______。
A、1.9E1.4
B、E1.1
C、2.10E
D、1.5E2
34、以下不合法的数值常量是______。
A、011
B、le1
C、8.0E0.5
D、0xabcd
35、以下选项中可用作C程序合法实数的是______。
A、1e0
B、3.0e0.2
C、E9
D、9.12E
36、以下选项中合法的实型常量是______。
A、0
B、3.13e-2.1
C、.914
D、2.0*10
37、以下选项中不能作为合法常量的是______。
A、1.234e04
B、1.234e0.4
C、1.234e+4
D、1.234e0
38、以下______是不合法的C语言常量。
A、OxFF
B、1.2e0.5
C、2L
D、'\72'
39、以下是正确C语言实型常量的是______。
A、1e-1
B、e-1
C、-1e
D、.e-1
40、在C语言中,以下选项中不能正确表示10×1000之值的是______。
A、1.0e4
B、1.E4
C、10E3
D、1.0E4.0
41、下列定义变量的语句中错误的是______。
A、int _int;
B、double int_;
C、char For;
D、float US$;
42、设变量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;
43、以下选项中正确的定义语句是______。
A、double a;b;
B、double a=b=7;
C、double a=7,b=7;
D、double,a,b;
44、有以下程序 main() { int a,b,d=25; a=d/10%9; b=a-1; printf("%d,%d\n",a,b); } 程序运行后的输出结果是______。
A、6,1
B、2,1
C、6,0
D、2,0
45、以下不能用于实型数据的运算符是______。
A、%
B、/
C、*
D、+
46、以下选项中,当x为大于1的奇数时,值为0的表达式是______。
A、x%2==0
B、x/2
C、x%2!=0
D、x%2==1
47、C语言程序中,运算对象必须是整型数的运算符是______。
A、+
B、/
C、%
D、*
48、以下叙述中错误的是______。
A、C程序中的#include和#define行均不是C语句
B、除逗号运算符外,赋值运算符的优先级最低
C、C程序中,j++;是赋值语句
D、C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
49、若有以下程序 #include main() { int b=10, a=-11; a%=b%=4; printf("%d %d\n", a, b); } 则程序的输出结果是______。
A、-1 2
B、1 2
C、-1 -2
D、1 -2
50、以下关于运算符"/"的叙述正确的是______。
A、不允许char型对象参与运算
B、总是进行双精度除法运算
C、总是进行单精度除法运算
D、只有其两边运算对象的类型都是整型时,所做运算为整数整除运算
51、以下程序拟实现计算 sum=1+1/2+1/3+ … +1/50 。 #include main( ) { int i; double sum; sum=1.0; i=1; do { i++; sum += 1/i; } while( i<50 ); printf("sum=%lf\n",sum); } 程序运行后,不能得到正确结果,出现问题的语句是______。
A、sum += 1/i;
B、while(i<50);
C、sum = 1.0;
D、i++;
52、设变量m为float类型,变量n为int类型,则以下能实现将m中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是______。
A、n=m*100+0.5, m=n/100.0
B、m=(m*100+0.5)/100.0
C、n=m/100+0.5, m=n*100.0
D、m=m*100+0.5/100.0
53、有以下程序 #include main() { int a=0,b=0,c=0; c=(a-=a-5); a=b,b+=4); printf("%d,%d,%d\n",a,b,c); } 程序运行后的输出结果是______。
A、0,4,5
B、4,4,5
C、4,4,4
D、0,0,0
54、设有定义:float a=2,b=4,h=3;,以下C语言表达式中与代数式1/2(a+b)h计算结果不相符的是______。
A、(a+b)*h/2
B、(1/2)*(a+b)*h
C、(a+b)*h*1/2
D、h/2*(a+b)
55、以下能正确表述算式sin(2πr+30°)的C语言表达式是______。
A、sin(2*3.14*r+3.14*30/180.0)
B、sin(2*π*r+ 30 )
C、sin(2*3.14*r+ 30 )
D、sin(2*3.14*r+30*3.14/360.0)
56、有以下定义: int a; long b; double x,y; 则以下选项中正确的表达式是______。
A、a%(int)(x-y)
B、a=x!=y;
C、(a*y)%b
D、y=x+y=x
57、以下说法正确的是______。
A、复合语句中包含的语句种类没有限制
B、复合语句中不能有循环语句
C、复合语句中不能有分支语句
D、一条复合语句不能超过50行
58、以下叙述中错误的是______。
A、C语句必须以分号结束
B、复合语句在语法上被看作一条语句
C、空语句出现在任何位置都不会影响程序运行
D、赋值表达式末尾加分号就构成赋值语句
59、有如下程序 #include Int main() { int x = 0x13; if ( x = 0x18) printf("T"); printf("F"); printf("\n"); } 程序运行后的输出结果是______。
A、F
B、T
C、TF
D、TFT
60、以下选项中,能表示逻辑值"假"的是______。
A、1
B、0.000001
C、0
D、100.0
61、以下关于C语言数据类型使用的叙述中错误的是______。
A、若只处理"真"和"假"两种逻辑值,应使用逻辑类型
B、若要保存带有多位小数的数据,可使用双精度类型
C、若要处理如"人员信息"等含有不同类型的相关数据,应自定义结构体类型
D、整数类型表示的自然数是准确无误差的
62、有以下程序 main() { int a=5,b=4,c=3,d=2; if (a==b==c) printf("%d\n",d); else if((c-d)==1) printf("%d\n",d+1); else printf("%d\n",d+2);} 执行后输出的结果是______。
A、2
B、3
C、4
D、编译时有错,无结果
63、以下叙述中正确的是______。
A、关系运算符两边的运算对象可以是C语言中任意合法的表达式
B、在C语言中,逻辑真值和假值分别对应1和0
C、对于浮点变量x和y,表达式:x==y 是非法的,会出编译错误
D、分支结构是根据算术表达式的结果来判断流程走向的
64、表示关系式x≤y≤z的C语言表达式的是______。
A、(x<=y<=z)
B、(x<=y)||(y<=z)
C、(x<=y) && (y<=z)
D、(x<=y) ! (y<=z)
65、以下关于逻辑运算符两侧运算对象的叙述中正确的是______。
A、只能是整数0或1
B、只能是整数0或非0整数
C、可以是结构体类型的数据
D、可以是任意合法的表达式
66、若变量c为char类型,能正确判断出c为小写字母的表达式是______。
A、'a'>=c<='z'
B、(c>='a')||(c<='z')
C、('a'<=c)and('z'>=c)
D、(c>='a')(c<='z')
67、有以下程序 #include "stdio.h" main(){ int x=10,y=11,z=12; if(y
A、A:x=11 y=12 z=11
B、x=10 y=10 z=10
C、x=11 y=11 z=10
D、x=10 y=10 z=12
68、有以下程序: #include "stdio.h" main() { int x = 0x13; if (x = 0x12) printf("True"); printf("False\n"); } 程序运行后的输出结果是______。
A、False
B、True
C、TrueFalse
D、TrueFalseTrue
69、以下运用if语句判断x和y大小的程序段,错误的是______。
A、if(x>y) printf(" x>y ");else if(x
B、if(x>=y)if(xy) printf("xy");else printf("x=y");else printf("x
C、if(x>y) printf(" x>y ");if(y
D、if(x>y) printf(" x>y ");else if(y
70、有以下程序段scanf("%d%d%d",&a,&b,&c);if(a
A、输出a、b、c中的最小值
B、输出a、b、c中的最大值
C、输出a的原始值
D、输出a、b、c中值相等的数值
71、若有以下程序: #include "stdio.h" main() { int a=1,b=2,c=3,d=4, r=0; if (a!=1) ; else r=1; if (b==2) r+=2; else; if (c!=3) r+=3; else; if (d==4) r+=4; printf("%d\n", r);} 则程序的输出结果是______。
A、7
B、10
C、6
D、3
72、以下程序的功能是判断输入的一个整数是否能被3或7整除,若能整除,输出YES,否则输出NO。在下划线处应填入的选项是______。 #include "stdio.h" main() { int k; printf("Enter a int number : "); scanf("%d", &k ); if printf("YES\n"); else printf("NO\n"); printf("%d\n",k); }
A、((k%3==0)||(k%7==0))
B、(k/3==0)||(k/7==0)
C、((k%3=0)||(k%7=0))
D、((k%3==0)&&(k%7==0))
73、下面的程序片段: y=-1; if (x!=0) {if(x>0) y=1;} else y=0; 以下说法错误的是______。
A、表述了类似数学中的分段函数
B、可以用其他格式的if语句改写替代
C、else与上一行的if相匹配
D、该程序段是if语句的嵌套
74、有以下程序: #include “stdio.h” main(){ int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3; printf("%d,%d,%d,%d\n",a,b,c,d);} 程序输出______。
A、0,1,2,0
B、0,0,0,3
C、1,1,2,0
D、编译有错
75、若执行以下程序时从键盘上输入9,则输出结果是______。 main() { int n; scanf("%d:",&n); if(n++<10) printf("%d\n",n); else printf("%d\n",n--); }
A、11
B、10
C、9
D、8
76、为了避免在嵌套的if-else语句中产生二义性,C语言规定与else子句配对是______。
A、与其缩排位置相同的if子句
B、在其之后最近的不带else的if子句
C、在其之前最近的不带else的同层if子句
D、与其在同一行上的if子句
77、以下4个选项,不能看作一条语句的是______。
A、{;}
B、a=0,b=0,c=0;
C、if(a>0);
D、if(b==0)m=1;n=2;
78、设有定义:int m=1,n=2;则以下if语句中,编译时会产生错误信息的是______。
A、if(m
B、if(m=n){ m++; n++;}
C、if(m>0 && n>0) { ;}
D、if(m==0) ; else m++;
79、有以下程序: #include "stdio.h" main() { int t; scanf("%d", &t ); if(t++ !=6) printf("%d\n",t); else printf("%d\n",t--); printf("\n"); } 执行时输入:6回车,则输出结果是______。
A、8
B、7
C、6
D、5
80、有以下程序段 scanf("%d%d%d",a,b,c); if(a>b) a=b; if(a>c) a=c; printf("%d\n",a);该程序段的功能是______。
A、输出a、b、c中值相等的数值
B、输出a、b、c中的最大值
C、输出a、b、c中的最小值
D、输出a的原始值
81、以下程序段中,不能实现条件"如果a==b则x=10,否则x=-10"的是______。
A、if(a==b) x=10;if(b==a) x=-10;
B、if(a==b) x=10;else x=-10;
C、x=-10;if(a==b) x=10;
D、x=(a==b)? 10:-10;
82、以下程序的输出结果是______。 main() { int x=05; char z='a'; printf("%d\n",(x)&&('z') ); }
A、0
B、1
C、2
D、3
83、#include “stdio.h” main() { int a=0,b=0,c=0; if(a++ || b++&&++c) printf ("%d,%d,%d\n", a, b, c); else printf ("%d,%d,%d\n", a, c, b); }
A、1,1,1
B、1,0,1
C、1,0,0
D、1,1,0
84、下列叙述中正确的是______。
A、C语言中既有逻辑类型也有集合类型
B、C语言中没有逻辑类型但有集合类型
C、C语言中有逻辑类型但没有集合类型
D、C语言中既没有逻辑类型也没有集合类型
85、以下叙述中正确的是______。
A、else不是一条独立的语句,它只是if语句的一部分
B、对于逻辑表达式:a++ && b++,设a的值为0,则求解表达式的值后,b的值会发生改变
C、对于逻辑表达式:a++ || b++,设a的值为1,则求解表达式的值后,b的值会发生改变
D、关系运算符的结果有三种:0,1,-1
86、若有以下程序 #include main() { int a=1,b=2,c=3,d=4; if ((a=2) || (b=2)) c=2; if ((c==3) & (d==-1)) a=5; printf("%d,%d,%d,%d\n", a,b,c,d);} 则程序的输出结果是______。
A、1,2,3,4
B、2,1,2,-1
C、5,1,2,-1
D、2,2,2,4
87、执行以下程序段后,w的值为______。 int w='A',x=14,y=15; w =((x || y)||(w &'a'));
A、-1
B、NULL
C、1
D、0
88、有下列程序 #include main() { int a=-1,b=2; for (;b>1; a++ ) printf("%d,%d,", ++a, --b); printf ("%d,%d",a, b);} 程序执行后的输出结果是______
A、0,1,1,1
B、0,1,1,0
C、0,1,1,0,1,0
D、0,1,1,1,1,1
89、有以下程序 #include main() { int a=1,b=2,c=3,d=0; if (a==1 && b++==2) if (b!=2||c--!=3) printf("%d,%d,%d\n",a,b,c); else printf("%d,%d,%d\n",a,b,c); else printf("%d,%d,%d\n",a,b,c);} 程序运行后的输出结果是______。
A、1,2,3
B、1,3,2
C、1,3,3
D、3,2,1
90、以下程序的输出结果是______。 main() { int a=4,b=5,c=0,d; d=!a && !b || !c; printf("%d\n",d);}
A、1
B、0
C、非0的数
D、-1
91、有以下程序: main() { int x=0,y=5,z=3; while(z-->0 && ++x<5) y=y-1; printf("%d,%d,%d\n",x,y,z);} 程序执行后的输出结果是______。
A、3,2,0
B、3,2,-1
C、4,3,-1
D、5,-2,-5
92、设有定义:int a=0,b=1;,以下表达式中,会产生"短路"现象,致使变量b的值不变的是______。
A、a++ && b++
B、a++ || ++b
C、++a && b++
D、+a || ++b
93、以下选项中与(!a==0)的逻辑值不等价的表达式是______。
A、(a==!0)
B、a
C、(a>0||a<0)
D、(a!=0)
94、已知a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a
A、-1
B、0
C、1
D、2
95、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为______。
A、不定值
B、4
C、3
D、1
96、若有以下程序 #include main() { int a=1,b=2,c=3,d=4; if (a==b--) c=2; if ( c-- > (d=-1)) a=5; printf("%d,%d,%d,%d\n", a,b,c,d);} 则程序的输出结果是______。
A、2,2,2,4
B、2,1,2,-1
C、5,1,2,-1
D、1,2,3,4
97、有如下程序 #include main() { iint a = 0, b = 1; if (a++ == b) printf("TRUE"); else printf("FALSE"); printf("_OUT:a=%d,b=%d\n", a, b++);} 程序运行后的输出结果是______。
A、FALSE_OUT:a=1,b=1
B、FALSE_OUT:a=0,b=2
C、TRUE_OUT:a=1,b=2
D、TRUE_OUT:a=0,b=1
98、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是______。
A、1
B、0
C、2
D、不知道a的值,不能确定
99、有以下程序 main() { int i=1,j=2,k=3; if(i++==1 && (++j==3 || k++==3)) printf("%d %d %d\n",i,j,k); }
A、1 2 3
B、2 3 4
C、2 2 4
D、2 3 3
100、设a、b、c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是______。
A、'a'
B、a=b
C、a||a+c
D、!((a
第三周:判断
3.1 判断随堂测验
1、以下语句是否可以通过编译: if ( 1<=n<=10 );
2、以下语句是否表示n属于[1,10]: if ( 1<=n<=10 );
3、写出程序的输出结果: int i,j,k; i=5; j=10; k=1; printf("%d", k>i
4、写出程序的输出结果: int i,j,k; i=2;j=3; k = i*j==6; printf("%d\n", k);
5、写出程序的输出结果: int i,j,k; i=3;j=2;k=1; printf("%d", i
3.2 分支随堂测验
1、写出程序的输出: int i=1; switch ( i%3 ) { case 0: printf("zero"); case 1: printf("one"); case 2: printf("two"); }
2、写出程序的输出: int a = 58; if ( a>50 ) printf("A"); if ( a>40 ) printf("B"); if ( a>30 ) printf("C");
编程题01
1、请编程实现:从键盘上随意输入一个算术运算式(可能是加、减、乘、除中的一种),然后你编写的程序要能判断出这个算术运算是否正确,正确显示“yes”,错误显示“no”。比如:从键盘上输入“3+2=5↙”,则屏幕上显示“yes”;从键盘上输入“3*2=5↙”,则屏幕上显示“no”。
编程题01(在线评分)
1、蓝集明出题:顺序、选择结构部分。
2、蓝集明出题:顺序、选择结构部分。
第四周:循环
4.1 循环随堂测验
1、while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了
2、以下代码片段执行结束后,变量i的值是多少? int i =10; while ( i>0 ) { i /=2; }
3、以下代码片段执行结束后,变量i的值是多少? int i = 1; do { i += 5; } while (i<17);
4.2 循环应用随堂测验
1、以下哪种运算能从变量x中取得十进制最低位的数字
A、x / 10
B、x % 10
C、x * 10
D、10 / x
2、当需要累加一些值的时候,用来记录累加结果的变量应该被初始为:
四川轻化工大学C语言第4-5章单元测验二(出题人:宋健)
1、有以下程序: #include "stdio.h" void main() { int x=0,y=6; do { while(--y) x++; }while(y--); printf("%d,%d\n",x,y); } 程序的运行结果是______。
A、5,-1
B、6,0
C、5,0
D、6,-1
2、以下程序的输出结果是______。 #include "stdio.h" void main() { int i=0,a=0; while(i<20) { for(;;) { if((i%10)==0) break; else i--; } i+=11; a+=i; } printf("%d\n",a); }
A、21
B、32
C、33
D、11
3、以下判断形参变量a是否为素数的函数正确的是______。
A、int isprime(int a) { int i; for(i=2; i<=a/2; i++) if(a%i==0) return 0; return 1;}
B、int isprime(int a) { int i; for(i=2; i<=a/2; i++) if(a%i==1) return 1; return 0;}
C、int isprime(int a) { int i; for(i=2; i=
D、int isprime(int a) { int i; for(i=2; i<=a/2; i++) if(a%i==1) return 1; else return 0;}
4、有以下程序 #include "stdio.h" void main() { int i,j,m=1; for(i=1;i<3;i++) { for(j=3;j>0;j--) { if(i*j>3) break; m*=i*j; } } printf("m=%d\n",m); } 程序运行后的输出结果是______。
A、m=6
B、m=2
C、m=4
D、m=5
5、有以下程序: #include "stdio.h" void func(int n) { int i; for(i=0;i<=n;i++) printf("*"); printf("#"); } void main() { func(3); printf("????"); func(4); printf("\n"); } 程序运行后的输出结果是______。
A、****#????***#
B、***#????****#
C、**#????*****#
D、****#????*****#
6、有以下程序 #include "stdio.h" void main() { int i,j; for( i=3; i>0; i-- ) { for( j=1; j<=i; j++ ) putchar( '*'); for( j=1; j<=3-i; j++ ) putchar('#'); putchar('\n'); } } 程序运行后的输出结果是______。
A、*** **# *##
B、**# *## ###
C、### ##* #**
D、##* #** ***
7、有下列程序: #include void main() { int arry[] = {1,3,5,7,9},i,j; for(i=0;i<4;i+=2) { for(j=1;i+j<5;j++,j++) printf ("%d ",arry[i+j]); } } 程序执行后的输出结果是______。
A、5 7 7
B、3 5 7
C、5 9 9
D、3 7 7
8、以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序。 void sort(int a[],int n) { int i,j,t; for(i=0;i
A、1,2,3,4,5,6,7,8,9,10,
B、10,9,8,7,6,5,4,3,2,1,
C、1,2,3,8,7,6,5,4,9,10,
D、1,2,10,9,8,7,6,5,4,3,
9、若i和k都是int类型变量,有以下for语句: for(i=0,k=-1;k=1;k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是______。
A、循环体执行两次
B、循环体执行一次
C、循环体一次也不执行
D、构成无限循环
10、有以下程序 #include "stdio.h" void main() { int i,n=0; for( i=2;i<5;i++) { do { if(i%3) continue; n++; }while(!i); n++; } printf("n=%d\n",n); } 程序执行后输出结果是______。
A、n=5
B、n=2
C、n=3
D、n=4
11、以下程序段中,与其他三个功能不同的程序段是______。
A、s=0;i=1; for( ; ; ) {s+=i; i++; if(i>=10) break;}
B、s=0,i=1; for( ; i<=10; ) {s+=i,i++;}
C、s=0; for(i=1; i<=10; i++) {s+=i;}
D、for(s=0,i=1; i<=10; s+=i,i++) ;
12、以下程序的输出结果是______。 #include "stdio.h" void main() { int a=6,b=0,c=0; for ( ;a; ) { b += a; a -= ++c; } printf("%d,%d,%d\n", a,b,c); }
A、0,14,3
B、1,14,3
C、0,18,3
D、0,14,6
13、有以下程序: #include "stdio.h" void main() { int k=5, n=0; do { switch(k) { case 1: case 3: n+=1; k--; break; default: n=0; k--; case 2: case 4: n+=2; k--; break; } printf("%d",n); }while(k>0 && n<5); } 程序运行后的输出结果是______。
A、235
B、0235
C、02356
D、2356
14、有以下程序: #include "stdio.h" void main() { int i,a; for (i=0; i<=10; i++) a=i; printf("%d,%d\n", i, a); } 程序的运行结果是______。
A、10,11
B、10,10
C、11,10
D、11,11
15、有以下程序 #include "stdio.h" void main() { int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=0;j<=i;j++) printf("%4c",' '); for(j=_____;j<4;j++) printf("%4d",num[i][j]); printf("\n"); } } 若要按以下形式输出数组右上半三角: 1 2 3 4 6 7 8 11 12 16 在程序下划线处应填入的是______。
A、i-1
B、i
C、i+1
D、4-i
16、有以下程序 #include "stdio.h" void main() { int i, j; for(i=1;i<4;i++) { for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j); printf("\n"); } } 程序运行后的输出结果是______。
A、1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3
B、1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9
C、1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9
D、1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9
17、有以下程序: void sort(int a[],int n) { int i,j,t; for(i=0;i
A、1,2,3,4,5,6,7,8,9,10,
B、10,9,8,7,6,5,4,3,2,1,
C、9,2,7,4,5,6,3,8,1,10,
D、1,10,3,8,5,6,7,4,9,2,
18、有如下程序: #include void main() { int i,data; scanf("%d",&data); for (i=0; i<5; i++) { if (i>data) break; printf("%d,", i); } printf("\n"); } 程序运行时,从键盘输入:3回车后,程序输出结果为______。
A、3,4,
B、0,1,0,1,
C、3,4,5,
D、0,1,2,3,
19、对于循环语句:for(i=0;i<=10;i++) { ; }下面各选项的叙述中错误的是______。
A、省略i=0,可引起无限循环
B、省略i<=10,可引起无限循环
C、省略i++,可引起无限循环
D、圆括号()内三个表达式都省略,可引起无限循环
20、以下程序的输出结果是______。 #include "stdio.h" void main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf("%d\n",t); }
A、3
B、4
C、1
D、9
21、以下叙述中正确的是______。
A、三种循环for,while,do-while可以互相嵌套
B、循环发生嵌套时,最多只能两层
C、循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误
D、for语句的圆括号中的表达式不能都省略掉
22、有以下程序 : #include "stdio.h" void main() { int a[3]={0}, i, j, k=2; for( i=0; i
A、1
B、2
C、3
D、0
23、设有n个数按从大到小的顺序存放在数组x中,以下能使这n个数在x数组中的顺序变为从小到大的是______。
A、for(i=0;i
B、for(i=0;i
C、for(i=0;i
D、for(i=0;i
24、以下程序的输出结果是______。 #include "stdio.h" void main() { int i,x[3][3]={1,2,3,4,5,6,7,8,9,}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); }
A、1,5,9,
B、1,4,7,
C、3,5,7,
D、3,6,9,
25、以下程序段中的变量已正确定义 for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf("*"); 程序段的输出结果是______。
A、********
B、****
C、**
D、*
26、以下程序中给数组所有元素输入数据,请从选项中选择正确的答案填入下划线处______。 #include void main() { int a[10], i=0; while( i<10 ) scanf("%d", ______ ); }
A、a+(i++)
B、a[i+1]
C、a+i
D、a[i++]
27、以下叙述中错误的是______。
A、while语句的循环体至少会被执行一次
B、break语句只能在循环体内和switch语句体内使用
C、执行continue语句时将跳过本次循环体中余下尚未执行的语句
D、在C语言中有三种可以构成循环结构的循环语句:while、do-while和for
28、若有以下程序 #include void main() { int a=-2, b=0; do { ++b ; }while(a++); printf("%d,%d\n", a, b); } 则程序的输出结果是______。
A、0,2
B、1,3
C、1,2
D、2,3
29、由以下while构成的循环,循环体执行的次数是______。int k=0;while ( k=1 ) k++;
A、无限次
B、一次也不执行
C、执行一次
D、有语法错,不能执行
30、以下程序的输出结果是______。 #include void main() { int num=0; while(num!=2) { num++; printf("%d\n",num); } }
A、123
B、12
C、1234
D、1
31、有以下程序 #include void main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } } 执行后输出的结果是______。
A、011122
B、012
C、012020
D、120
32、有以下程序 #include void main() { int a=1, b=0; for(;a<5; a++) { if (a%2==0) break; b += a; } printf("%d \n", b); } 程序的运行结果是______。
A、0
B、10
C、1
D、4
33、有以下程序 #include void main() { int x,a=1,b=1; while(1) { scanf("%d",&x); if(x>0) { a*=x;break;} if(x<0) { b*=x;continue; } printf("%d,%d\n",a,b); } } 程序运行时输入:-1 -2 0 1 2 回车,则输出结果是______。
A、1,2
B、2,2
C、-1,1
D、-2,1
34、关于"while(条件表达式)循环体",以下叙述正确的是______。
A、条件表达式的执行次数总是比循环体的执行次数多一次
B、循环体的执行次数总是比条件表达式的执行次数多一次
C、条件表达式的执行次数与循环体的执行次数一样
D、条件表达式的执行次数与循环体的执行次数无关
35、下面程序的输出是______。 #include void main() { char *s="12134211"; int v1=0,v2=0,v3=0,v4=0,k; for (k=0;s[k];k++) switch(s[k]) { default:v4++; case '1':v1++; case '3':v3++; case '2':v2++; } printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
A、v1=4,v2=2,v3=1,v4=1
B、v1=4,v2=9,v3=3,v4=1
C、v1=5,v2=8,v3=6,v4=1
D、v1=8,v2=8,v3=8,v4=8
36、t为int类型,进入下面的循环之前,t的值为0。while(t=1){......}则以下叙述中正确的是______。
A、循环控制表达式的值为0
B、循环控制表达式的值为1
C、循环控制表达式不合法
D、以上说法都不对
37、下面函数的功能是______。 int fun1(char*x) { char *y=x; while(*y++); return(y-x-1); }
A、求字符串的长度
B、比较两个字符串的大小
C、将字符串x复制到字符串y
D、将字符串x连接到字符串y后面
38、有如下程序 void main() { int n=9; while(n>6) { n--; printf("%d",n); } } 该程序段的输出结果是______。
A、987
B、876
C、8765
D、9876
39、有以下程序 #include void main() { int s; scanf("%d",&s); while(s) { 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); } } 运行时,若输入1 2 3 4 5 0回车,则输出结果是______。
A、6566456
B、66656
C、66666
D、6666656
40、有以下程序段 int i,n; for(i=0;i<8;i++) { n= %5; switch(n) { case 1: case 3: printf("%d\n",n); break; case 2: case 4: printf("%d\n",n); continue; case 0: exit(0); } printf("%d\n",n); } 以下关于程序段执行情况的叙述,正确的是______。
A、for循环语句固定执行8次
B、当产生的随机数n为4时结束循环操作
C、当产生的随机数n为1和2时不做任何操作
D、当产生的随机数n为0时结束程序运行
41、有以下程序 #include void main() { int a=1,b=2; while(a<6) { b+=a; a+=2; b%=10; } printf("%d,%d\n",a,b); } 程序运行后的输出结果是______。
A、5,11
B、7,1
C、7,11
D、6,1
42、有以下程序 #include void main() { char ch = 'D'; while (ch!='A') { ch --; putchar(ch); if (ch == 'A') break; putchar(ch+1); } } 程序运行后的输出结果是______。
A、CDBCA
B、BCA
C、CCBB
D、CB
43、有以下程序 #include void main() { int a=7; while(a--); printf("%d\n",a); } 程序运行后的输出结果是______
A、-1
B、0
C、1
D、7
44、要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是______。
A、while((ch=getchar())!='N') printf("%c ",ch);
B、while(ch=getchar() ='N') printf("%c ",ch);
C、while(ch=getchar()=='N') printf("%c ",ch);
D、while(getchar(ch))=='N') printf("%c ",ch);
45、有以下程序 #include void main() { int y=10; while(y--); printf("y=%d\n",y); } 程序执行后的输出结果是______。
A、y=0
B、y=-1
C、y=1
D、while构成无限循环
46、有以下程序 #include void main() { int a,b; for (a=0; a<3; a++) { scanf("%d", &b); switch(b) { default: printf("%d,", b++); case 1: printf("%d,", b++); case 2: printf("%d,", b++); } } } 程序运行时输入:1 2 3回车,则输出结果是______。
A、1,2,3,
B、1,2,2,3,4,5,
C、1,2,3,2,3,3,
D、1,1,1,2,2,3
47、有以下程序 #include void main() { int a[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2) { case 0:switch(a[i]%2) { case 0:a[i]++;break; case 1:a[i]--; } break; case 1:a[i]=0; } for(i=0;i<4;i++) printf("%d ",a[i]); printf("\n"); } 程序运行后的输出结果是______。
A、3 3 4 4
B、2 0 5 0
C、3 0 4 0
D、0 3 0 4
48、请读程序: #include void main() { int num=0; while( num <=2) { num++; printf("%d\n",num); } } 上面程序的输出结果是______。 ① 1 ② 12 ③ 123 ④ 1234
A、①
B、②
C、③
D、④
49、有以下程序 #include void main() { int k=5,n=0; while(k>0) { switch(k) { default : break; case 1 : n+=k; case 2 : case 3 : n+=k; } k--; } printf("%d\n",n); } 程序运行后的输出结果是______。
A、0
B、4
C、6
D、7
50、有如下程序 #include void main() { int n = 9; while(n>6) { n--; printf("%d",n); } } 该程序的输出结果是______。
A、987
B、876
C、8765
D、9876
51、有以下程序 #include void main() { int a,b; for (a=0; a<3; a++) { scanf("%d",&b); switch(b) { case 1: printf("%d,", ++b); case 2: printf("%d,", ++b); default: printf("%d,", ++b); } } } 执行时输入:1 2 3回车 ,则输出结果是______。
A、2,3,4,3,4,4,
B、2,3,4,
C、2,2,2,3,3,4,
D、2,3,4,3,4,5,4,5,6
52、有以下程序 #include 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; case 3: a++;b++; } } printf("a=%d,b=%d\n",a,b);} 程序的运行结果是______。
A、a=1,b=0
B、a=2,b=2
C、a=1,b=1
D、a=2,b=1
53、有以下程序 #include void main() { int a=15,b=21,m=0; switch(a%3) { case 0:m++;break; case 1:m++; switch(b%2) { default:m++; case 0:m++;break; } } printf("%d\n",m); } 程序运行后的输出结果是______。
A、1
B、2
C、3
D、4
54、有以下程序 #include void main() { int m,n; scanf("%d%d",&m,&n); while(m!=n) { while(m>n) m=m-n; while(n>m) n=n-m; } printf("%d\n",m); } 该程序的功能是______。
A、计算m和n的差值
B、计算m和n的最小公倍数
C、计算m和n的最大公约数
D、找出m和n中的较大值
55、对于while(!E) s; ,若要执行循环体s,则E的取值应为:______。
A、E不等于0
B、E等于0
C、E不等于1
D、E等于1
56、有以下程序 #include void main() { char ch = '1'; while (ch
A、1
B、01234567
C、0
D、12345678
57、设变量n已正确定义并赋值,以下不能实现自然数1到n累加求和的程序段是______。
A、int sum=1, i=0;while(i<=n){i++; sum+=i;}
B、int sum=0,i=1;while(i<=n){ sum+=i;i++;}
C、int sum=0, i=0;while(i<=n){i++; sum+=i;}
D、int sum=1, i=1;while(i<=n){i++; sum+=i;}
58、以下叙述中正确的是______。
A、只能在循环体内和switch语句体内使用break语句
B、当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行
C、continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环
D、在while语句和do-while语句中无法使用continue语句
59、以下程序中,while循环的循环次数是______。 #include void main() { int i=0; while(i<10) { if(i<10) continue; if(i==5)break; i++; } ...... }
A、1
B、10
C、6
D、死循环,不能确定次数
60、以下程序的输出结果是______。 #include void main() { char *s="12134211"; int v[4]={0,0,0,0},k,i; for (k=0;s[k];k++) { switch(s[k]) { case '1':i=0; case '2':i=1; case '3':i=2; case '4':i=3; } v[i]++; } for(k=0; k<4;k++) printf("%d ",v[k]); }
A、4 2 1 1
B、0 0 0 8
C、4 6 7 8
D、8 8 8 8
61、有以下程序 #include void main() { int a=-1, b=-1; while(++a)++b; printf("%d,%d\n", a,b); } 程序的运行结果是______。
A、0,0
B、0,-1
C、-1,-1
D、结果不确定
62、有以下程序 #include void main() { int k=5; while(--k) printf("%d",k-=3); printf("\n"); } 执行后的输出结果是______。
A、1
B、2
C、4
D、死循环
63、若有以下程序 #include void main() { int s=0, n; for (n=0; n4; n++) { switch(n) { default: s+=4; case 1: s+=1; case 2: s+=2; case 3: s+=3; } } printf("%d\n", s); } 则程序的输出结果是______。
A、24
B、18
C、10
D、6
64、设有以下两段代码 do { while(条件表达式1 ) 循环体A; }while (条件表达式2); 和 while (条件表达式1) { do {循环体B;} while (条件表达式2); } 其中,循环体A与循环体B相同,在相同条件下,以下叙述正确的是______。
A、循环体A与循环体B的执行次数不确定
B、循环体A比循环体B的执行次数多一次
C、循环体A比循环体B的执行次数少一次
D、循环体A与循环体B的执行次数相同
65、阅读以下函数 fun(char *sl,char *s2) { int i=0; while(sl[i]==s2[i]) i++; return(sl[i]=='\0' ?1:0); } 此函数的功能是______。
A、将s2所指字符串赋给s1
B、比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
C、比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D、比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0
66、以下叙述中正确的是______。
A、如果根据算法需要使用无限循环(即通常所称的"死循环") ,则只能使用while语句
B、对于"for(表达式1;表达式2;表达式3) 循环体"首先要计算表达式2的值,以便决定是否开始循环
C、对于"for(表达式1;表达式2;表达式3) 循环体",只在个别情况下才能转换成while语句
D、只要适当地修改代码,就可以将do-while与while相互转换
67、以下叙述中正确的是______。
A、continue语句使得整个循环终止
B、break语句不能用于提前结束for语句的本层循环
C、使用break语句可以使流程跳出switch语句体
D、在for语句中,continue与break的效果是一样的,可以互换
68、在以下给出的表达式中,与while(E)中的(E)不等价的表达式是______。
A、(!E==0)
B、(E>0||E<0)
C、(E==0)
D、(E!=0)
69、若有以下程序段,w和k都是整型变量: w=k;LB:if(w==0)goto LE;w--;printf("*");goto LB;LE: . . . 则不能与上面程序段等价的循环语句是______。
A、for(w=k;w!=0;w--)printf("*");
B、w=k; while(w--!=0)printf("*");w++;
C、w=k; do { w--;printf("*");}while(w!=0);
D、for(w=k;w;--w)printf("*");
70、以下叙述中正确的是______。
A、break语句只能用于switch语句体中
B、continue语句的作用是:使程序的执行流程跳出包含它的所有循环
C、break语句只能用在循环体内和switch语句体中
D、在循环内使用break语句和continue语句的作用相同
71、有以下程序 #include void main() { int c=0,k; for(k=1;k<3;k++) switch(k) { default: c+=k; case 2: c++;break; case 4: c+=2;break; } printf("%d\n",c); } 程序运行后的输出结果是______。
A、3
B、5
C、7
D、9
72、有以下程序 #include void main() { int x,y=0,z=0,t; do { scanf("%d",&x); t=x; switch (t) { case 0:break; case 1:y+=x; continue; } z+=x; }while(x); printf("%d,%d\n",y,z); } 程序运行时输入:-1 1 -2 2 0回车,则输出结果是______。
A、1,1
B、1,0
C、1,-1
D、3,0
73、若有定义语句int a,b;double x ;则下列选项中没有错误的是______。
A、switch (x%2){case 0: a++;break;case 1: b++;break;default: a++; b++;}
B、switch ((int)x/2.0){case 0: a++;break;case 1: b++;break;default: a++; b++;}
C、switch ((int)x%2){case 0: a++;break;case 1: b++;break;default: a++; b++;}
D、switch ( (int) (x)%2){case 0.0: a++;break;case 1.0: b++;break;default: a++; b++;}
74、有以下程序 #include void main() { char c; while( ( c=getchar() )!= '\n' ) { switch( c-'2' ) { case 0 : case 1 : putchar( c+4 ); case 2 : putchar( c+4 ); break; case 3 : putchar( c+3 ); default : putchar( c+2 ); break; } } printf( "\n" ); } 程序运行后从第一列开始输入以下数据2473回车程序的输出结果是______。
A、668977
B、4444
C、6677877
D、68766
75、有以下程序 #include void main() { int a,b; for (a=0; a<3; a++) { scanf("%d", &b); switch(b) { default: printf("%d,", ++b); case 1: printf("%d,", ++b); case 2: printf("%d,", ++b); } } } 执行时输入:1 2 3回车,则输出结果是______。
A、2,3,4,
B、2,3,3,4,5,6,
C、2,2,3,4,4,4,
D、2,3,4,3,4,4,
76、下列叙述中正确的是______。
A、在switch语句中必须使用default
B、在switch语句中,不一定使用break语句
C、break语句必须与switch语句中的case配对使用
D、break语句只能用于switch语句
77、有如下程序 #include 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\n",a,b); } 该程序的输出结果是______。
A、a=2,b=1
B、a=1,b=1
C、a=1,b=0
D、a=2,b=2
78、有以下程序 #include void main() { int a = 3; do { printf("%d,", a-=2 ); } while( ! (--a) ); printf("\n"); } 程序运行后的输出结果是______。
A、1,
B、1, -2,
C、3,0,
D、1,0
79、有以下程序段 int n,t=1,s=0; scanf("%d",&n); do { s=s+t; t=t-2; } while (t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是______。
A、任意正奇数
B、任意负偶数
C、任意正偶数
D、任意负奇数
80、有以下程序 #include void main() { int a,b; for (a=0; a<3; a++) { scanf("%d", &b); switch(b) { case 1: printf("%d,", b++); case 2: printf("%d,", b++); default: printf("%d,", b++); } } printf("\n"); } 执行时输入:1 2 3 回车,则输出结果是______。
A、1,2,3,
B、1,2,3,2,3,3,
C、2,3,4,3,4,4,
D、1,1,1,2,2,3
81、若有以下程序 #include void main() { int s=0, n; for (n=0; n<4; n++) { switch(n) { default: s+=4; case 1: s+=1; break; case 2: s+=2; break; case 3: s+=3; } } printf("%d\n", s); } 则程序的输出结果是______。
A、10
B、11
C、13
D、15
82、以下程序的输出结果是______。 #include void main() { int n=4; while(n--) printf("%d ",--n); }
A、2 0
B、3 1
C、3 2 1
D、2 1 0
83、有下列程序 #include void main() { int i,j,a,b; a=b=j=0; while(j<3) { j++; if(j==1) continue; for(i=0;i<3;i++) { if(i>1) break; a=a*10+i; if(i<1) b=a; } } printf ("%d %d\n",a, b); } 程序执行后的输出结果是______。
A、101 10
B、101 101
C、10 0
D、10 101
84、若要实现total=1+2+3+4+5求和,以下程序段错误的是______。
A、int i=1,total=1;while(i<=5){ total+=i;i+=1;}
B、int i=1,total=0;while(i<=5){ total+=i;i+=1;}
C、int i=0,total=0;while(i<5){ i+=1;total+=i;}
D、int i=0,total=0;while(i<=5){ total+=i;i+=1;}
85、以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是______。
A、switch(a){case 1:a=b;break;default : a++;}
B、switch(a==1){case 0:a=b;break;case 1:a++;}
C、switch(a){default:a++;break;case 1:a=b;}
D、switch(a==1){case 1:a=b;break;case 0:a++;}
86、有以下程序段int x=3;do{ printf("%d",x-=2);}while(!(--x));其输出结果是______。
A、1
B、3 0
C、1 -2
D、死循环
87、有以下程序 #include void main() { int i=5; do{ if(i%3==1) if(i%5==2) {printf("*%d",i);break;} i++; }while(i!=0); printf("\n"); } 程序的运行结果是______。
A、*7
B、*3*5
C、*5
D、*2*6
88、有以下程序#include #include #include void main() { char c; do { c=getchar(); putchar(c); } while(c != '#'); printf("\n"); } 执行时如输入:abcdefg##回车 , 则输出结果是______。
A、abcdefg
B、abcdefg#
C、abcdefg##
D、##
89、以下能够实现计算5!的程序段是______。
A、int fac=1,k=0;do{ k++; fac*=k;} while(k5);
B、int fac=0,k=1;do{ fac*=k; k++;} while(k5);
C、int fac=1,k=1;do{ k++; fac*=k;} while(k=5);
D、int fac=1,k=0;do{ fac*=k; k++;} while(k5);
90、有以下程序#include #include void main() { int a=7,b=0; do { b+= a;a-=1; } while (a--) ; printf("%d,%d\n",b,a); } 执行后的输出结果是______。
A、16,-1
B、28,1
C、16,0
D、28,0
91、以下不构成无限循环的语句或语句组是______。
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;
92、有以下程序 #include void main() { int i=0,s=0; do { if(i%2) {i++;continue;} i++;s+=i; } while(i<7); printf("%d\n",s); } 执行后输出的结果是______。
A、16
B、12
C、28
D、21
93、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是______。
A、n=0; while((ch=getchar())!='\n') n++;
B、n=0; while(getchar()!='\n') n++;
C、for(n=0;getchar()!='\n';n++);
D、n=0;for(ch=getchar();ch!='\n';n++);
94、有如下程序: #include void main() { int n[5] = {0,0,0},i,k = 2; for(i = 0; i
A、不确定的值
B、2
C、1
D、0
95、以下程序的输出结果是______。 #include void main() { int i,a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d%d%d",a[2],a[5],a[8]); }
A、258
B、741
C、852
D、369
96、有以下程序 #include int f(int a) { return a%2; } void main() { int s[8]={1,3,5,2,4,6},i,d=0; for (i=0;f(s[i]);i++) d+=s[i]; printf("%d\n",d); } 程序运行后的输出结果是______。
A、9
B、11
C、19
D、21
97、有以下程序: #include void main() { int i,s=0; for(i=1;i<=10;i+=2) s+=i+1; printf("%d\n",s); } 程序执行后的输出结果是______。
A、自然数1~9的累加和
B、自然数1~10的累加和
C、自然数1~9中奇数之和
D、自然数1~10中偶数之和
98、有如下程序 #include "stdio.h" void main() { int i,f=1,s=0; for(i=1;i<100;i++) { s=s+f*i;f=-f;} printf ("s=%d\n",s); } 程序的功能是______。
A、计算1-3+5-7+...-99的值
B、计算1-2+3-4+... +99的值
C、计算1*2*3*4*...*99的值
D、计算1*3*5*7*...*99的值
99、有以下程序 #include "stdio.h" void main() { int a, b; for( a=1,b=1; a<=100; a++ ) { if(b>=20) break; if(b % 3==1) {b=b+3; continue;} b=b-5; } printf("%d\n",a); } 程序的输出结果是______。
A、8
B、10
C、9
D、7
100、有以下程序 #include "stdio.h" void main() { char a[4][4]={' '}; int i,j; for(i=0;i<4; i++) { a[i][0]=a[i][3]='#'; for(j=1; j<3; j++) { a[0][j]=a[3][j]='#'; if((i!=0)||(i!=3)) a[i][j]='o'; } } for(i=1;i<3; i++) { for(j=0; j<4;j++) printf("%2c",a[i][j]); printf("\n"); } } 程序的运行结果是______。
A、# o o # # o o #
B、# # # # # o o #
C、# o o # # # # #
D、# # # # # # # #
4.3循环编程作业
1、(郑宗良出题) 请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005, 即某项小于0.0005时停止迭代): 程序运行后,如果输入精度0.0005,则程序输出为3.140578。 注意:部分源程序存在文件prog.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
第五周:循环控制
5.1 第三种循环随堂测验
1、以下哪个循环和其他三条循环不等价(假设循环体都是一样的)?
A、for ( i=0; i<10; i++ ) {...}
B、for ( i=0; i<10; ++i ) {...}
C、for ( i=0; i++<10; ) {...}
D、for ( i=0; i<=9; i++ ) {...}
2、以下代码段的输出是什么? for ( int i=10; i> 1; i /=2 ) { printf("%d ", i++); }
5.2 循环控制随堂测验
1、以下代码段的输出是: int sum = 0; for ( int i=0; i<10; i++ ) { if ( i%2 ) continue; sum += i; } printf("%d\n", sum);
2、以下代码段的输出是: int sum = 0; for ( int i=0; i<10; i++ ) { if ( i%2 ) break; sum += i; } printf("%d\n", sum);
第六周:数据类型
6.1 数据类型随堂测验
1、以下哪个字母不能在数字后面表示类型?
A、F
B、U
C、L
D、X
2、以下哪个数字的值最大?
A、10
B、010
C、0x10
D、10.0
3、以下哪个数字占据的空间最大?
A、32768
B、‘3’
C、32768.0
D、32768.0F
4、以下哪种类型不能用在switch-case的判断变量中:
A、char
B、short
C、int
D、double
5、下列哪些是有效的字符?
A、‘ ’
B、‘\’‘
C、''
D、'\'
6、以下表达式的结果是: '1'+3
6.2 其他运算:逻辑、条件、逗号随堂测验
1、以下哪个表达式,当a和b都是true或者都是false的时候,表达式的结果为true。
A、a && b
B、a || b
C、a == b
D、a ^ b
2、以下哪个表达式与!(a&&b)是等价的
A、!a && !b
B、!a || !b
C、a && b
D、a || b
3、以下哪个表达式的结果是true?
A、!(4<5)
B、2>2||4==4&&1<0
C、34==33&&!false
D、!false
4、以下哪个表达式,当a和b中只有一个是true的时候结果为true,而如果两个都是false或都是true的时候,结果为false
A、a && b
B、a || b
C、a != b
D、!a && !b
5、以下代码执行后,i的值是: i = 3/2,3*2;
第一次单元测验
1、以下哪个选项是判断ch是否为大写字母的正确形式?
A、ch >= 'A' && ch <='Z'
B、ch <= 'Z' && ch >= 'A'
C、'A' <= ch <= 'Z'
D、ch >= 'A' || ch <= 'Z'
E、ch >='A' AND ch <='Z'
F、ch BETWEEN 'A' AND 'Z"
2、以下代码片段的输出是: int j=4; for ( int i=j; i<=2*j; i++ ) { switch ( i/j ) { case 0: case 1: printf(“*”); break; case 2: printf(“#”); } }
A、****#
B、****##
C、***#
D、*#
E、****
3、下列程序段输出结果为: int x=1, y=012; printf(“%d”,y*x++);
A、10
B、12
C、20
D、24
4、下面程序段的输出结果是? int k; while(k!=0) k=k-1; printf(“%d”, k);
A、0
B、无论k的初值如何,最终都会减到0的。
C、因为k没有初值,所以结果不确定
D、1
E、因为没有给k赋初值,因此程序不能通过编译
5、以下表达式x&&1 用在if的条件中时,和哪个是等价的:
A、x!=0
B、x
C、x==0
D、x==1
E、x!=1
6、以下哪个不是C语言的关键字?
A、include
B、if
C、while
D、int
E、for
7、对于以下代码: unsigned short sht = 0; sht --; 执行后,sht的值是?
A、65535
B、2的16次方-1
C、-1
D、32767
E、65536
8、以下哪个直接量是十进制的124?
A、0174
B、0x7C
C、124
D、0x124
E、0124
F、124d
9、对于以下代码: int i=6; if ( i<= 6 ) printf("hello\n");; else printf("bye-bye\n");; 哪句话是对的?
A、无法编译
B、不能通过编译
C、打印出"hello"
D、打印出"bye-bye"
E、打印出"hello bye-bye"
10、在代码: while ( !e ) 中,!e等价于:
A、e == 0
B、e != 1
C、e!=0
D、e == 1
11、下列可用于C语言程序标识符的一组是(名字间以逗号分隔):
A、For, _abc, IF
B、_if, _123, file
C、void, d, WORD
D、For, -abc, IF
E、-(减号)不能出现在名字中
F、2_a, xyz, b1_s
12、对for(表达式1;;表达式3) 可理解为
A、for(表达式1;1;表达式3)
B、for(表达式1;true;表达式3)
C、for(表达式1; 表达式1;表达式3)
D、for(表达式1; 表达式3;表达式3)
E、for(表达式1;0;表达式3)
13、对于以下代码: int i,j=6; 以下哪句话是对的?
A、i不会被初始化,而j是6
B、i和j的初始值都是6
C、i被初始为0,而j是6
D、不能通过编译
14、对于以下代码: char ch = -1; printf("%d\n", ch); 输出结果是?
A、-1
B、255
C、ASCII码表中255那个位置的字符
D、编译错误,因为赋值的时候类型不一致
E、编译错误,因为赋值的时候不能把负数赋给char
F、运行错误,因为%d和ch的类型不匹配
15、对于以下代码: int i; scanf("%d", &i); i %= 4; 执行后,i会有几种可能性?
A、7
B、0
C、1
D、2
E、3
F、不好说
16、对于以下代码: int i=6; do { printf("%d", i--); } while (0); 哪句话是对的?
A、打印出6
B、打印出5
C、因为while(0),无法编译
D、打印不出东西
17、对于以下代码: int i; for ( i=0; i<10; i++) printf("%d", i); for循环后,i的值是多少?
A、10
B、9
C、11
D、i没有确定的值
E、i不存在
18、以下哪个for语句是错误的?
A、for (i=0;j=0; i<10; i++ );
B、for (i=0;i<10);
C、for (i=0; i++ );
D、for (;;);
E、for (i=0; i<10; i--);
F、for (i=0; i<10, j<10; i++);
G、for (int i=0; i<10, j<10; i++);
19、表达式ch =‘B’+‘8’-‘3’表示的字符是:
20、以下代码的输出是 _____. int x=0, y=0, z=0; z = (x==1) && (y=2); printf("%d ", y);
21、以下代码段的结果是: int i=10; long long t = sizeof(i++); printf("%d", i);
22、表达式(double)(10/4*4) 的结果是_____
23、以下代码的输出是 : int i,x,y; i=x=y=0; do { ++i; if ( i%2 ) x+=i, i++; y +=i++; } while ( i<=7 ); printf("%d %d %d", i, x, y);
第七周:函数
7.2 函数的参数和变量随堂测验
1、以下哪句不是正确的原型?
A、int f();
B、int f(int i);
C、int f(int);
D、int f(int i) {}
2、以下哪个函数的定义是错误的?
A、void f() {}
B、void f(int i) { return i+1; }
C、void f(int i) {}
D、int f() { return 0; }
3、对于不返回值而且只有一个int类型的参数的函数,以下哪些函数原型是正确的?
A、void f(int x);
B、void f();
C、void f(int);
D、void f(x);
4、以下程序的输出是什么? #include void swap(int a, int b); int main() { int a = 5; int b = 6; swap(a,b); printf("%d-%d\n", a, b); return 0; } void swap(int a, int b) { int t = a; a = b; b = t; }
第八周:数组
8.2 数组运算随堂测验
1、若有定义: int a[2][3]; 则以下选项中不越界的正确的访问有:
A、a[2][0]
B、a[2][3]
C、a[1>2][0]
D、a[0][3]
2、以下程序片段的输出结果是:int m[][3] = {1,4,7,2,5,8,3,6,9,}; int i,j,k=2; for ( i=0; i<3; i++ ) { printf("%d", m[k][i]); }
A、369
B、不能通过编译
C、789
D、能编译,但是运行时数组下标越界了
3、假设int类型变量占用4个字节,定义数组 int x[10] = {0,2,4}; 则x在内存中占据几个字节?
4、若有: int a[][3] = {{0},{1},{2}}; 则 a[1][2] 的值是?
四川轻化工大学C语言第6-7章单元测验三(出题人:郑宗良)
1、有以下程序 #include void main() { int a[3][2]={0},(*ptr)[2],i,j; for(i=0;i<2;i++) { ptr=a+i; scanf("%d",ptr); ptr++; } for(i=0;i<3;i++) { for(j=0;j<2;j++) printf("%d",a[i][j]); } } 若运行时输入:1 2 3回车,则输出结果是______。
A、产生错误信息
B、102000
C、123000
D、102030
2、有以下程序 #include void main() { char *p[]={"3697","2548"}; int i,j; long num=0; for(i=0;i<2;i++) { j=0; while(p[i][j]!='\0') { if((p[i][j]- '0')%2) num=10*num+p[i][j]- '0'; j+=2; } } printf("%d\n",num); } 程序执行后的输出结果上______。
A、35
B、37
C、39
D、3975
3、有以下程序 #include void main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=0;j
A、1
B、3
C、2
D、9
4、有以下程序 #include void main() { int i,j; for(i=3;i>=1;i--) { for(j=1;j<3;j++) printf("%d",i+j); } } 程序的运行结果是______。
A、2 3 43 4 5
B、4 3 25 4 3
C、2 33 44 5
D、4 53 42 3
5、有以下程序 #include void main() { 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\n",x); } 程序执行后的输出结果是______。
A、x=4
B、x=8
C、x=6
D、x=12
6、有以下程序 #include void main() { int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t; for(i=0;i<4;i++) for(j=0;j<3;j++) for(k=j+1;k<4;k++) if(a[j][i]>a[k][i]) { t=a[j][i]; a[j][i]=a[k][i]; a[k][i]=t; } /*按列排序*/ for(i=0;i<4;i++) printf("%d,",a[i][i]); } 程序运行后的输出结果是______。
A、1,6,5,7,
B、8,7,3,1,
C、4,7,5,2,
D、1,6,2,1,
7、有以下程序 #include void main() { int k, j, s; for( k=2; k<6; k++,k++ ) { s=1; for (j=k; j<6; j++ ) s+=j; } printf("%d\n" , s ); } 程序运行后的输出结果是______。
A、6
B、10
C、24
D、40
8、有以下程序 #include #include void fun( char s[][10],int n) { char t; int i,j; for(i=0;is[j][0]) { t=s[i][0]; s[i][0]=s[j][0]; s[j][0]=t; } } void main() { char ss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc"}; fun(ss,5); printf("%s,%s\n",ss[0],ss[4]); } 程序的运行结果是______。
A、xy,aaaacc
B、aaaacc,xy
C、xcc,aabcc
D、acc,xabcc
9、有如下程序段 for(i=0;i<10;i++) if(i>5) break; 则循环结束后i的值为______。
A、5
B、6
C、9
D、10
10、有如下程序 #include void main() { int i, data; scanf("%d", &data); for (i=0; i<10; i++) { if (i> data) break; printf("%d,", i); } } 程序运行时,从键盘输入:3回车后,程序输出结果为______。
A、3,4,5,
B、1,2,3,
C、2,3,4,
D、0,1,2,3,
11、有以下程序: #include void main() { int k=4,n=0; for( ; n
A、1,1
B、2,2
C、3,3
D、4,4
12、有以下程序 #include void main() { int i=1,k=0; for(;i<6 ;) { switch(i%3) { case 0: k++; case 1: k++; break; case 2: k++; break; } i+=1; } printf("%d\n",k); } 程序的运行情况是______。
A、4
B、6
C、5
D、形成无限循环
13、有以下程序 #include void main() { int a=0, b=0; for( ;a<5; a++ ) { if (a%2==0) continue; b += a; } printf("%d \n", b); } 程序的运行结果是______
A、4
B、10
C、0
D、15
14、以下程序的输出结果是______。 #include void main() { int a,b; for(a=1,b=1;a<100;a++) { if(b==10) break; if(b%3==1) { b+=3; continue; } } printf("%d\n",a); }
A、101
B、6
C、5
D、4
15、#include void main() { int i, data; scanf("%d", &data); for (i=0; i<5; i++) { if (i == data) continue; printf("%d-", i); } } 程序运行时,从键盘输入:3回车后,程序输出结果为______。
A、3-4-
B、1-2-3-
C、0-1-2-
D、0-1-2-4-
16、#include void main() { int a=0, b=0; for(; a<5; a++) { if (a%2==0) continue; b += a; break; } printf("%d \n", b); } 程序运行后的输出结果是______。
A、1
B、4
C、0
D、10
17、有以下程序 #include void main() { int a=1, b=0; for(; a<5; a++) { if (a%2 == 0) break; continue; b += a; } printf("%d \n", b); } 程序运行后的输出结果是______。
A、0
B、1
C、10
D、4
18、有如下程序 #include void main() { int i, data; scanf("%d", &data); for (i=0; i<5; i++) { if (i == data) continue; printf("%d,", i); } printf("\n"); } 程序运行时,从键盘输入:3回车后,程序输出结果为______。
A、3,4,
B、1,2,3,4,
C、0,1,2,3,4,5,
D、0,1,2,4
19、有以下程序 #include void main() { int i=0,s=0; for (;;) { if(i>6) break; i++; s+=i; } printf("%d\n",s); } 程序运行后的输出结果是______。
A、10
B、15
C、21
D、28
20、有以下程序 #include void main() { int i; char c; scanf("%c",&c); for (i=0; i<5; i++) { if (i>=c) continue; printf("%d,",i); } } 执行时输入:0回车后,则输出结果是______。
A、0,1,2,3,4,
B、0,0,0,0,0,
C、5,3,
D、0,1,
21、有以下程序段 int x ,i ; for(i=0;i<100;i++) { scanf("%d",&x); if(x>0) continue; printf("%4d\n",x); } 下面针对上述程序段的描述正确的是______。
A、最多可以输出100个非正整数
B、当x<0时结束整个循环
C、当x=0时没有任何输出
D、printf函数调用语句总是被跳过
22、有以下程序 #include void main() { int i ; for( i=1; i<5; i++ ) { if( i % 2 ) printf( "*" ); else continue; printf( "#" ); } printf( "$\n" ); } 程序运行后的输出结果是______。
A、*#*#*#$
B、*#*#*$
C、*#*#$
D、*#*#*#*$
23、有以下程序 #include void main() { int x=8; for( ;x>0;x--) { if(x%3) { printf("%d,",x--); continue; } printf("%d,",--x); } } 程序的运行结果是______。
A、7,4,2,
B、8,7,5,2,
C、9,7,6,4,
D、8,5,4,2,
24、以下函数按每行8个输出数组中的数据 #include void fun( int *w, int n) { int i; for(i=0;i
A、if(i/8==0) printf("\n");
B、if(i/8==0) continue;
C、if(i%8==0) printf("\n");
D、if(i%8==0) continue;
25、以下叙述中正确的是______。
A、转义字符用@符号开头
B、字符变量在定义时不能赋初值
C、同一英文字母的大写和小写形式代表的是同一个字符常量
D、字符常量可以参与任何整数运算
26、以下叙述正确的是______。
A、A表达式9+'0'的值是字符9的ASCII码
B、表达式'A'+32的值是字母A的ASCII码
C、表达式'a'-32的值是字母a的ASCII码
D、表达式9-'0'的值是数值9
27、有以下程序: #include void main() { char ch = 'M'; while (ch != 'K') { putchar(ch); ch--;} } 程序运行后的输出结果是______。
A、ML
B、MK
C、OP
D、mm
28、有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是______。
A、gets(&s[0]);
B、scanf("%s",s);
C、gets(s);
D、scanf("%s",s[0]);
29、有以下程序: #include int f(int x); void main() { int a,b=0; for(a=0;a<3;a++) { b=b+f(a); putchar('A'+b);} } int f(int x) { return x*x+1; } 程序运行后的输出结果是______。
A、ABE
B、BDI
C、BCF
D、BCD
30、以下函数值的类型是______。 fun(float x) { float y; y=3*x-4; return y; }
A、int
B、不确定
C、void
D、float
31、以下所列的各函数声明中,正确的是______。
A、void play(var a:Integer,var b:Integer)
B、void play(int a,b)
C、void play(int a,int b)
D、Sub play(a as integer,b as integer)
32、以下选项中表示空函数的是______。
A、void fun() { }
B、void fun();
C、int fun() { return 0;}
D、int fun(int a, int b) { return 1;}
33、以下关于函数的叙述中正确的是______。
A、函数形参的类型与返回值的类型无关
B、函数必须要有形参
C、函数必须要有返回值
D、函数调用必须传递实参
34、下列叙述中正确的是______。
A、每一个C程序文件中都必须要有一个main()函数
B、在C程序中main()函数的位置是固定的
C、C程序中所有函数之间都可以相互调用,与函数所在位置无关
D、在C程序的函数中不能定义另一个函数
35、若函数fun定义如下: int fun(void) { double d; long t=rand(); d=t*0.618; return d; } 则函数返回值的类型是______。
A、double
B、int
C、void
D、long
36、若有如下函数定义: double fun(int x,int y) { return (x+y); } return语句中表达式值的类型与说明的类型不一致,则以下叙述中正确的是______。
A、函数返回的值为double型
B、函数返回的值为int型
C、编译出错
D、运行时出错
37、有如下程序 #include void main() { int a[3][3] = {{1,2},{3,4},{5,6}}, i,j,s = 0; for(i = 1; i < 3; i++) { for(j=0;j<= i;j++) s += a[i][j]; printf("%d ",s); } } 该程序的输出结果是______。
A、7 18
B、7 19
C、8 20
D、8 21
38、以下程序的输出结果是______。 #include void 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\n",k); }
A、20
B、21
C、22
D、23
39、有以下程序 #include void main() { int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=0;j<=i;j++) printf("%4c",' '); for(j=i;j<4;j++) printf("%4d",num[i][j]); printf("\n"); } } 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是______。
A、i-1
B、i
C、i+1
D、4-i
40、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10 void arrin(int x[N]) { int i=0; while(i
A、x[i++]
B、&x[i+1]
C、x+i++
D、&x[++i]
41、以下能正确定义二维数组的是______。
A、int a[][3];
B、int a[][3]={2*3};
C、int a[][3]={};
D、int a[3][3]={{1},{2},{3,4}};
42、有以下程序 #include int f(int a) { return a%2; } void main() { int s[8]={1,3,5,2,4,6},i,d=0; for (i=0;f(s[i]);i++) d+=s[i]; printf("%d\n",d); } 程序运行后的输出结果是______。
A、9
B、11
C、19
D、21
43、有以下程序 #include void main() { int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++) c[s[i]]++; for(i=1;i<5;i++) printf("%d",c[i]); printf("\n"); } 程序的运行结果是______。
A、1 2 3 4
B、2 3 4 4
C、4 3 3 2
D、1 1 2 3
44、有如下程序 #include void main() { int n[5] = {0,0,0},i,k = 2; for(i = 0; i < k; i++) n[i] = n[i] + 1; printf("%d\n",n[k]); } 该程序的输出结果是______。
A、不确定的值
B、2
C、1
D、0
45、以下程序的输出结果是______。 #include void main() { int i,a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d%d%d",a[2],a[5],a[8]); }
A、258
B、741
C、852
D、369
46、以下程序中的函数 reverse 的功能是将 a 所指数组中的内容进行逆置。 #include void reverse(int a[],int n) { int i,t; for(i=0;i
A、22
B、10
C、34
D、30
47、有以下程序 #include void main() { int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=aa[i][1]; printf("%d\n",s); } 程序运行后的输出结果是______。
A、11
B、19
C、13
D、20
48、有以下程序 #include void main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++) {printf("%d ",m[k][i]);} } 执行后输出结果是______。
A、4 5 6
B、2 5 8
C、3 6 9
D、7 8 9
49、有以下程序 #include void main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++) { printf("%d ",m[k][i]); } } 执行后输出结果是______。
A、4 5 6
B、2 5 8
C、3 6 9
D、7 8 9
50、以下程序的输出结果是______。 #include void main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf("%d\n",t); }
A、3
B、4
C、1
D、9
51、有以下程序 #include void main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2) {k=k+p[i]; i++;} printf("%d\n",k); } 执行后输出的结果是______。
A、58
B、56
C、45
D、24
52、以下程序的输出结果是______。 #include void main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]); }
A、0650
B、1470
C、5430
D、输出值不定
53、若有定义语句:int a[3][6];,按在内存中的存放顺序,a 数组的第 10 个元素是______。
A、a[0][4]
B、a[1][3]
C、a[0][3]
D、a[1][4]
54、有如下程序 #include void main() { int a[3][3] = {{1,2},{3,4},{5,6}}, i,j,s = 0; for(i = 1; i < 3; i++) for(j = 0; j <= i; j++) s += a[i][j]; printf("%d\n",s); } 该程序的输出结果是______。
A、18
B、19
C、20
D、21
55、以下能正确定义一维数组的选项是______。
A、int a[5]={0,1,2,3,4,5};
B、char a[]={0,1,2,3,4,5};
C、char a={'A','B','C'};
D、int a[5]="0123";
56、以下叙述中错误的是______。
A、对于 double 类型数组,不可以直接用数组名对数组进行整体输入或输出
B、程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标越界"的出错信息
C、可以通过赋初值的方式确定数组元素的个数
D、数组名代表的是数组所占存储区的首地址,其值不可改变
57、以下程序的输出结果是。 #include void main() { int i,x[3][3]={1,2,3,4,5,6,7,8,9,}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); }
A、1,5,9,
B、1,4,7,
C、3,5,7,
D、3,6,9,
58、以下程序的输出结果是______。 #include void main() { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for (i=1;i<3;i++) for(j=0;j<=i;j++)s+=a[i][j]; printf("%d\n",s); }
A、18
B、19
C、20
D、21
59、假定 int 类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组 x 在内存中所占 字节数是______。
A、3
B、6
C、10
D、20
60、以下数组定义中不正确的是______。
A、int a[2][3];
B、int b[][3]={0,1,2};
C、int c[100][100]={0};
D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}}
61、若有定义:int aa[8];则以下表达式中不能代表数组元素 aa[1]的地址的是______。
A、&aa[0]+1
B、&aa[1]
C、aa[0]++
D、aa+1
62、以下能正确定义数组并正确赋初值的语句是______。
A、int N=5,b[N][N];
B、int a[1][2]={{1},{3}};
C、int c[2][]={{1,2},{3,4}};
D、int d[3][2]={{1,2},{3,4}};
63、以下能正确定义一维数组的选项是______。 int num[]
A、#define N 100 int num[N]
B、int num[0..100]
C、int N=100;
D、int num[N]
64、有以下程序 #include void main() { int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf("%d ",t[2-i][i]); } 程序执行后的输出结果是______。
A、7 5 3
B、3 5 7
C、3 6 9
D、7 5 1
65、若有定义:int a[2][3];,以下选项中对 a 数组元素正确引用的是______。
A、a[2][!1]
B、a[2][3]
C、a[0][3]
D、a[1>2][!1]
66、若有定义语句:int m[ ]={5,4,3,2,1},i=4; ,则下面对 m 数组元素的引用中错误的是______。
A、m[--i]
B、m[2*2]
C、m[m[0]]
D、m[m[i]]
67、有以下程序 #include #define N 4 void fun(int a[][N],int b[]) { int i; for(i=0;i
A、1,2,3,4,
B、1,0,7,0,
C、1,4,5,9,
D、3,4,8,10,
68、若有定义语句:char s[10]= "1234567\0\0";,则 strlen(s)的值是______。
A、7
B、8
C、9
D、10
69、已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是______。
A、数组 a 和 b 的长度相同
B、a 数组长度小于 b 数组长度
C、a 数组长度大于 b 数组长度
D、上述说法都不对
70、有定义语句:char s[10];,若要从终端给 s 输入 5 个字符,错误的输入语句是______。
A、gets(&s[0]);
B、scanf("%s",s);
C、gets(s);
D、scanf("%s",s[1]);
71、以下能正确定义字符串的语句是______。
A、char str[]={'\064'};
B、char str="\x43";
C、char str='';
D、char str[]="\0";
72、有以下程序 #include #include void fun( char s[][10],int n) { char t; int i,j; for(i=0;is[j][0]) {t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;} } void main() { char ss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc"}; fun(ss,5); printf("%s,%s\n",ss[0],ss[4]); } 程序的运行结果是______。
A、xy,aaaacc
B、aaaacc,xy
C、xcc,aabcc
D、acc,xabcc
73、有如下程序: #include void main() { int n[5]={0,0,0},i,k = 2; for(i = 0; i < k; i++) n[i] = n[i] + 1; printf("%d\n",n[k]); } 该程序的输出结果是______。
A、不确定的值
B、2
C、1
D、0
74、以下程序的输出结果是______。 #include void main() { int i,a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d%d%d",a[2],a[5],a[8]); }
A、258
B、741
C、852
D、369
75、以下程序的输出结果是______。 #include void main() { char ch[3][5]={"AAAA","BBB","CC"}; printf("%s\n",ch[1]); }
A、"AAAA"
B、"BBB"
C、"BBBCC"
D、"CC"
76、有以下程序 #include void main() { char s[]="\n123\\"; printf("%d,%d\n",strlen(s),sizeof(s)); } 执行后输出结果是______。
A、6,7
B、5,6
C、6,6
D、赋初值的字符串有错
77、113、以下程序段的输出结果是:______。 char s[]="\\141\141abc\t"; printf("%d\n",strlen(s));
A、9
B、12
C、13
D、14
78、有以下程序 #include void main() { char a[]={'a','b','c','d','e','f','g','h','\0'}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d\n",i,j); } 程序运行后的输出结果是______。
A、9,9
B、8,9
C、1,8
D、9,8
79、有以下程序 #include void main() { char a[]={'a','b','c','d','e','f','g','h','\0'}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d\n",i,j); } 程序运行后的输出结果是______。
A、9,9
B、8,9
C、1,8
D、9,8
80、以下程序的输出结果是______。 #include void main() { char st[20]="hello\0\t\\"; printf("%d%d\n",strlen(st),sizeof(st)); }
A、99
B、520
C、1320
D、2020
81、以下关于字符串的叙述中正确的是______。
A、C 语言中有字符串类型的常量和变量
B、两个字符串中的字符个数相同时才能进行字符串大小的比较
C、可以用关系运算符对字符串的大小进行比较
D、空串一定比空格打头的字符串小
82、请读程序片段(字符串内没有空格字符): printf("%d\n",strlen("ATS\n012\1\\") ); 上面程序片段的输出结果是______。
A、11
B、10
C、9
D、8
83、设有 static char str[]="Beijing"; 则执行 printf("%d\n",strlen(strcpy(str,"China") ) ); 后的输出结果为______。
A、5
B、7
C、12
D、14
84、下列描述中不正确的是______。
A、字符型数组中可以存放字符串
B、可以对字符型数组进行整体输入、输出
C、可以对整型数组进行整体输入、输出
D、不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
85、以下程序的输出结果是______。 #include void main( ) { int n[3][3], i, j; for(i=0;i<3;i++) for(j=0;j<3;j++) n[i][j]=i+j; for(i=0;i<2;i++) for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j]; printf("%d\n",n[i][j]); }
A、14
B、0
C、6
D、值不确定
86、以下程序的输出结果是______。 #include #include void main() { char str[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str) ); }
A、6
B、7
C、11
D、12
87、不能把字符串:Hello!赋给数组 b 的语句是______。
A、char b[10]={'H','e','l','l','0','!'};
B、char b[6]={'H','e','l','l','0','!'};
C、char b[10];strcpy(b,"Hello!");
D、char b[10]="Hello!";
88、若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则值为 4 的表达式是______。
A、a[g-c]
B、a[4]
C、a['d'-'c']
D、a['d'-c]
89、有以下程序 #include void main() { char a[7]="a0\0a0\0"; int i,j; i=sizeof(a); j=strlen(a); printf("%d %d\n",i,j); } 程序运行后的输出结果是______。
A、7 2
B、6 2
C、1 5
D、1 6
90、以下程序的输出结果是______。 #include void main() { char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k; for(k=1;k<3;k++) printf("%s\n",w[k]); }
A、EFGH IJKL
B、BCD FGH
C、KL ABCD
D、EFG IJ
91、有以下程序 #include void main() { char a[]="abcdefg",b[10]="abcdefg"; printf("%d %d\n",sizeof(a),sizeof(b)); } 执行后输出结果是______。
A、7 7
B、8 10
C、7 10
D、10 10
92、有以下程序 #include void main() { char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; strcpy(p+strlen(q),r); strcat(p,q); printf("%d %d\n",sizeof(p),strlen(p)); } 程序运行后的输出结果是______。
A、20 9
B、9 9
C、20 11
D、11 11
93、有以下程序 #include void main() { char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; strcat(p,r); strcpy(p+strlen(q),q); printf("%d\n",strlen(p)); } 程序运行后的输出结果是______。
A、9
B、6
C、11
D、7
94、若程序中定义了以下函数 double myadd(double a,double b) {return(a+b);} 并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是 ______。
A、double myadd(double a, b);
B、double myadd(double,double);
C、double myadd(double b, double a);
D、double myadd(double x, double y);
95、以下所列的各函数声明中,正确的是______。
A、void play(var a:Integer,var b:Integer)
B、void play(int a,b)
C、void play(int a,int b)
D、Sub play(a as integer,b as integer)
96、C 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是______。
A、void
B、int
C、float
D、double
97、若程序中定义了以下函数, double myadd(double a,double b) {return(a+b);} 并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是 ______。
A、double myadd(double a, b);
B、double myadd(double,double);
C、double myadd(double b, double a);
D、double myadd(double x, double y);
98、下列叙述中正确的是______。
A、每一个 C 程序文件中都必须要有一个 main()函数
B、在 C 程序中 main()函数的位置是固定的
C、C 程序中所有函数之间都可以相互调用,与函数所在位置无关
D、在 C 程序的函数中不能定义另一个函数
99、有以下程序 #include fun(char p[][10]) { int n=0,i; for(i=0;i<7;i++) if(p[i][0]== 'T') n++; return n; } void main() { char str[][10]={ "Mon","Tue","Wed","Thu","Fri","Sat","Sun"}; printf("%d\n",fun(str)); } 程序执行后的输出结果是______。
A、1
B、2
C、3
D、0
100、#include sub(int *s,int y) { static int t=3; y=s[t]; t--; } void main() { int a[]={1,2,3,4},i, x=0; for(i=0;i<4;i++) { sub(a,x);printf("%d",x); } printf("\n"); }
A、1234
B、4321
C、0000
D、4444
8.3数组编程作业
1、(郑宗良出题)请编一个函数 void fun(int tt[M][N],int pp[N]),tt 指向一个 M 行 N 列的二维数组,求出二维数组每列中最小元素,并依次放入 pp 所指一维数组中。二维数组中的数已在主函数中赋予。
2、(郑宗良出题)程序定义了 N×N 的二维数组,并在主函数中赋值。请编写函数 fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的 s。 例如:a 数组中的值为 |0 1 2 7 9| |1 9 7 4 5| a= |2 3 8 3 1| |4 5 6 8 2| |5 9 1 4 1| 则返回主程序后 s 的值应为:3.375。
3、34、给定程序的功能是实现矩阵(3 行 3 列)的转置(即行列互换)。 例如,输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
4、329、程序定义了 N×N 的二维数组,并在主函数中自动赋值。请编写函数 fun( int a[][N]), 函数的功能是:使数组中第一行元素中的值与倒数第一行元素中的值对调、第二行元素中的 值与倒数第二行元素中的值对调、……、其他依次类推。例如:a 数组中的值为
8.4字符串编程作业
1、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其它*号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF*G********,删除后,字符串中的内容应当是:****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。
2、例7.8 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
3、请编写函数fun,函数的功能是:在字符串中的所有字符中加入空格 例如,输入2020,则输出为:2 0 2 0。
4、规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中所有连续的*号。
8.5字符串编程作业2
1、在考生文件夹下的给定程代码中,利用参数传地址,编写fun函数,函数 fun 的功能是:实现主函数的两个整数的交换。 例如给 a 和 b 分别输入:60 和 65,输出为:a=65 b=60 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
2、请编写一个函数 void fun(char *tt,int pp[]),统计在 tt 字符串中'a'到'z'26 个字母各自出 现的次数,并依次放在 pp 所指数组中。 例如,当输入字符串:abcdefgabcdeabc 后,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 注意: 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写 的若干语句
第十二周:程序结构
12.2 编译预处理和宏随堂测验
1、假设宏定义: #define DOUBLE(x) 2*x 则DOUBLE(1+2)的值是
2、假设宏定义如下: #define TOUPPER(c) ('a'<=(c)&&(c)<='z'?(c)-'a'+'A':(c)) 设s是一个足够大的字符数组,i是int型变量,则以下代码段的输出是: strcpy(s, "abcd"); i = 0; putchar(TOUPPER(s[++i]));
四川轻化工大学C语言第9章单元测验六(出题人:陈国超)
1、有以下程序 #include #define N 5 #define M N+1 #define f(x) (x*M) void main() { int i1,i2; i1=f(2); i2=f(1+1); printf("%d %d\n",i1,i2); } 程序的运行结果是______。
A、12 12
B、11 7
C、11 11
D、12 7
2、有以下程序 #include #define FNA(x) x*x #define FNB(x) x+x void main() { int a=2,b=4; printf("%d,%d\n",FNA(FNB(a)),FNB(FNA(b))); } 程序运行后的输出结果是______。
A、8,32
B、16,32
C、8,16
D、16,16
3、以下选项中的编译预处理命令行,正确的是______。
A、#define int INT;
B、##define eps 0.001
C、#DEFINE TRUE
D、#define PI 3.14
4、有以下程序 #include #define PT 3.5 #define S(x) PT*x*x void main() { int a=1,b=2; printf("%4.1f\n",S(a+b)); } 程序运行后的输出结果是______。
A、14.0
B、31.5
C、程序有错无输出结果
D、7.5
5、有以下程序 #include #define SUB(a)(a)-(a) void main() { int a=2,b=3,c=5,d; d=SUB(a+b)*c; printf("%d\n",d); } 程序运行后的输出结果是______。
A、0
B、-12
C、-20
D、10
6、有如下程序 #include #define D(x) 4*x+1 void main() { int i = 2,j = 4; printf("%d\n", D(i+j)); } 程序运行后的输出结果是______。
A、13
B、25
C、9
D、12
7、以下程序的输出结果是______。 #define f(x) x*x void main() { int a=6,b=2,c; c=f(a)/f(b); printf("%d\n",c); }
A、9
B、6
C、36
D、18
8、有如下程序 #define N 2 #define M N+1 #define NUM 2*M+1 void main() { int i; for(i=1;i<=NUM;i++) printf("%d ",i); } 该程序中的for循环执行的次数是______。
A、5
B、6
C、7
D、8
9、以下关于宏的叙述中正确的是______。
A、宏名必须用大写字母表示
B、宏定义必须位于源程序中所有语句之前
C、宏替换没有数据类型限制
D、宏调用比函数调用耗费时间
10、若有以下程序 #include #define S(x) (x)*(x) #define T(x) S(x)/S(x)+1 void main() { int k=3, j=2; printf("%d,%d\n", S(k+j),T(k+j) ); } 则程序的输出结果是______。
A、25,2
B、25,26
C、11,12
D、11,2
11、以下for语句构成的循环执行了______次。 #include #define N 2 #define M N+1 #define NUM (M+1)*M/2 void main() { int i,n=0; for(i=1;i<=NUM;i++) { n++; printf("%d",n); } printf("\n"); }
A、5
B、6
C、8
D、9
12、有以下程序 #include #define SUB(X,Y) (X+1)*Y void main() { int a=3, b=4; printf("%d\n",SUB(a++ ,b++ )); } 程序运行后的输出结果是______。
A、16
B、20
C、12
D、25
13、有以下程序 #define P 3 int F(int x) { return(P*x*x); } void main() { printf("%d\n",F(3+5)); } 程序运行后的输出结果是______。
A、编译出错
B、29
C、25
D、192
14、以下程序的输出结果是______。 #define SQR(X) X*X void main() { int a=16,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("%d\n",a); }
A、16
B、2
C、9
D、1
15、有以下程序 #define f(x) (x*x) void main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } 程序运行后的输出结果是______。
A、64,28
B、4,4
C、4,3
D、64,64
16、若有以下程序 #include #define S(x) x*x #define T(x) S(x)*S(x) void main() { int k=5, j=2; printf("%d,%d\n", S(k+j),T(k+j)); } 则程序的输出结果是______。
A、49,2401
B、17,37
C、17,289
D、49,289
17、下面选项中关于编译预处理的叙述正确的是______。
A、凡是以#号开头的行,都被称为编译预处理命令行
B、预处理命令行必须使用分号结尾
C、预处理命令行不能出现在程序的最后一行
D、预处理命令行的作用域是到最近的函数结束处
18、有以下程序 #include #define D(x) 2*x+3 void main() { int i=1,j=2; printf("%d\n", D(i+j)); } 程序运行后的输出结果是______。
A、6
B、7
C、9
D、2
19、有以下程序 #include #define S(x) x/x void main() { int k=5, j=2; printf("%d,%d\n", S(k+j), S(j+k)); } 程序的运行结果是______。
A、7,7
B、1,1
C、7,9
D、9,9
20、以下叙述中正确的是______。
A、预处理命令行必须位于C源程序的起始位置
B、在C语言中,预处理命令行都以"#"开头
C、每个C程序必须在开头包含预处理命令行:#include
D、C语言的预处理不能实现宏定义和条件编译的功能
21、以下叙述中正确的是______。
A、在一个程序中,允许使用任意数量的#include命令行
B、在包含文件中,不得再包含其他文件
C、#include命令行不能出现在程序文件的中间
D、虽然包含文件被修改了,包含该文件的源程序也可以不重新进行编译和连接
22、有以下程序: #include"stdio.h" int fun(int n) { static int t=1; int i=1; for( ; i<=n; i++) t*=i; return t; } void main() { int t=1,i; for(i=2;i<4; i++) t+=fun(i); printf("%d\n",t); } 程序的运行结果是______。
A、15
B、11
C、8
D、4
23、设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是______。
A、auto
B、register
C、static
D、auto或register
24、设有以下函数: f(int a) { int b=0; static int c=3; b++;c++; return(a+b+c); } 如果在下面的程序中调用该函数,则输出结果是______。 void main() { int a=2, i; for(i=0;i<3;i++) printf("%d\n",f(a)); }
A、7 8 9
B、7 9 11
C、7 10 13
D、7 7 7
25、有以下程序: #include int mul(int val) { static int init=1; return init*=val; } void main() { int i; for (i=1;i<=5;i++) printf("%d,",mul(i)); } 程序运行后的输出结果是______。
A、1,2,6,24,120,
B、1,2,3,4,5,
C、1,1,1,1,1,
D、1,2,4,6,8,
26、有以下程序: #include double fun(int n) { static double f=1; f*=n; return f; } void main() { int i; double s=0; for(i=1;i<6;i++) s+=fun(i); printf("%lf\n", s); } 程序计算的是______。
A、s=1!+2!+3!+4!+5!
B、s=1+2+3+4+5
C、s=1*2*3*4*5
D、s=1!*2!*3!*4!*5!
27、有以下程序: #include int fun(int a) { int b=2; static int c=2; b++; c--; return(a+b+c); } void main() { int k, a=2; for(k=0; k<3; k++) printf("%d ", fun(a)); printf("\n"); } 执行后的输出结果是______。
A、6 7 8
B、6 6 6
C、6 5 4
D、4 5 6
28、有以下程序: #include int f(int k) { static int n=0; int m=0; n++; m++; k++; return n+m+k; } void main() { int k; for(k=0;k<2;k++) printf("%d,",f(k)); printf("\n"); } 程序运行后的输出结果是______。
A、3,5,
B、3,6,
C、3,7,
D、0,3,
29、有以下程序: #include int a=2; int f() { static int n; int m; m=n=0; n++; a++; m++; return n+m+a; } void main() { int k; for (k=0; k<3; k++) printf("%d,", f( )); printf("\n"); } 程序的运行结果是______。
A、5,6,7,
B、5,7,9,
C、5,8,11,
D、5,5,5,
30、有以下程序: #include int fun(int a) { int b=0; static int c=3; a=(c++,b++); return(a); } void main() { int a=2,i,k; for(i=0;i<2;i++) k=fun(a++); printf( "%d\n",k ); } 程序的输出结果是______。
A、0
B、4
C、1
D、2
31、以下程序的输出结果是______。 void main() { int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p); } func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); }
A、8,17
B、8,16
C、8,20
D、8,8
32、以下叙述中正确的是______。
A、全局变量的作用域一定比局部变量的作用域范围大
B、静态(static)类别变量的生存期贯穿于整个程序的运行期间
C、函数的形参都属于全局变量
D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值
33、以下叙述中正确的是______。
A、局部变量说明为static存储类,其生存期将得到延长
B、全局变量说明为static存储类,其作用域将被扩大
C、任何存储类的变量在未赋初值时,其值都是不确定的
D、形参可以使用的存储类说明符与局部变量完全相同
34、以下选项中叙述错误的是______。
A、C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
B、在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
C、C程序函数中定义的自动变量,系统不自动赋确定的初值
D、C程序函数的形参不可以说明为static型变量
35、有以下程序 int a=2; int f(int n) { static int a=3; int t=0; if(n%2) { static int a=4; t+=a++; } else { static int a=5; t+=a++; } return t+a++; } void main() { int s=a,i; for(i=0;i<3;i++) s+=f(i); printf("%d\n",s); } 程序运行后的输出结果是______。
A、26
B、28
C、29
D、24
36、有以下程序: #include int a=1,b=2; void fun1(int a,int b) { printf("%d%d",a,b); } void fun2() { a=3;b=4; } void main() { fun1(5,6); fun2(); printf("%d %d\n",a,b); } 程序运行后的输出结果是______。
A、125 6
B、563 4
C、561 2
D、345 6
37、有以下程序: #include int a=1; int f(int c) { static int a=2; c=c+1; return (a++)+c; } void main() { int i,k=0; for(i=0;i<2;i++) { int a=3; k+=f(a); } k+=a; printf("%d\n",k); } 程序的运行结果是______。
A、14
B、15
C、16
D、17
38、有以下程序 #include int m=12; int fun( int x,int y ) { static int m=3; m=x*y-m ; return (m); } void main() { int a=7, b=5; m=fun( a,b )/m; printf("%d\n", fun( a,b )/m ); } 程序运行后的输出结果是______。
A、0
B、1
C、2
D、3
39、有以下程序: #include int a=2; int f() { static int n=0; int m=0; n++; a++; m++; return n+m+a; } void main() { int k; for (k=0; k<3; k++) printf("%d,", f()); printf("\n"); } 程序的运行结果是______。
A、5,6,7,
B、5,7,9,
C、5,8,11,
D、5,5,5,
40、有以下程序: #include int m=1,n=2; void sub1(int m,int n) { m+=2; n++; } void sub2() { m++; n+=2; } void main() { printf("%d,%d,",m,n); sub1(4,5); printf("%d,%d,",m,n); sub2(); printf("%d,%d\n",m,n); } 程序运行后的输出结果是______。
A、1,2,1,2,2,4
B、1,2,6,6,7,8
C、1,2,2,4,2,4
D、1,2,6,6,2,4
41、有如下程序 #include void get_put() { char ch; ch = getchar(); if (ch != '\n') get_put(); putchar(ch); } void main() { get_put(); printf("\n"); } 程序运行时,输入1234回车,则输出结果是______。
A、4321
B、1234
C、4444
D、1111
42、有以下程序 fun(int x) { int p; if(x==0||x==1) return(3); p=x-fun(x-2); return p; } void main() { printf("%d\n",fun(7)); } 执行后的输出结果是______。
A、7
B、3
C、2
D、0
43、有以下程序 #include void fac2(int ); void fac1(int n) { printf("*"); if(n>0) fac2(n-1); } void fac2(int n) { printf("#"); if(n>0) fac2(--n); } void main() { fac1(3); } 程序的运行结果是______。
A、*###
B、*##*
C、**##
D、*#*#
44、#include void fun( int a ) { if( a>1 ) fun(a-1); printf("%d ",a); } void main() { int q=5; fun(q); printf("\n"); } 执行后的输出结果是______。
A、1 2 3 4 5
B、5 4 3 2 1
C、0 1 2 3 4 5
D、5 4 3 2 1 0
45、有以下程序 #include int f(int x) { if(x<2) return 1; return x*f(x-1) + f(x-2); } void main() { int y; y=f(3); printf ("%d\n",y); } 程序的输出结果是______。
A、7
B、10
C、13
D、9
46、有如下程序 #include void get_put() { char ch; ch = getchar(); if (ch != '\n') get_put(); putchar(ch); } void main() { get_put(); } 程序运行时,输入ABCD回车,程序的输出结果是______。
A、DCBA
B、DCDC
C、BABA
D、ABCD
47、#include int sum(int * array, int len) { if (len == 1) return array[1]; else return array[1] + sum(array+1, len-1); } void main() { int array[5] = {0,9,1,2}, res; res = sum(array, 3);printf("%d\n", res); } 程序运行后的输出结果是______。
A、8
B、11
C、12
D、27
48、有以下程序 #include void fun( int n ) { if( n/2 ) fun(n/2); printf("%d",n%2 ); } void main() { fun( 10 ); printf("\n"); } 程序运行后的输出结果是______。
A、1010
B、1000
C、1100
D、0101
49、有以下程序 #include void f(int x[], int n) { if(n>1) { printf("%d,", x[0]); f(&x[1], n-1); printf("%d,", x[0]); } else printf("%d,", x[0]); } void main() { int z[3] = {4,5,6}; f(z, 3); printf("\n"); } 程序运行后的输出结果是______。
A、4,5,6,5,4,
B、6,5,4,6,5,4,
C、4,5,6,4,5,6,
D、6,5,4,5,6,
50、有以下程序 #include void fun(char c) { if(c>'x') fun(c-1); printf("%c",c); } void main() { fun('z'); } 程序运行后的输出结果是______。
A、xyz
B、wxyz
C、zyxw
D、zyx
51、有以下程序 int fun(int n) { if(n==1) return 1; else return(n+fun(n-1)); } void main() { int x; scanf("%d",&x); x=fun(x); printf("%d\n",x); } 执行程序时,给变量x输入10,程序的输出结果是______。
A、55
B、54
C、65
D、45
52、有以下程序 #include< stdio.h> void f(int x[], int n) { if (n> 1) { printf("%d,", x[n-1]); f(x, n-1); printf("%d,", x[n-1]); } else printf("%d,", x[0]); } void main() { int z[3] = {1, 2, 3}; f(z,3); printf("\n"); } 程序运行后的输出结果是______。
A、3,2,1,2,3,
B、3,1,3,
C、1,2,3,1,2,3,
D、1,2,3,2,1,
53、有以下程序 #include int f(int x) { int y; if(x==0||x==1) return(3); y=x*x-f(x-2); return y; } void main() { int z; z=f(3); printf("%d\n",z); } 程序的运行结果是______。
A、0
B、9
C、6
D、8
54、有下列程序 #include void f(int x[], int n) { if (n>1) { printf("%d", x[n-1]); f(x,n-1); printf("%d", x[n-1]); } else printf ("%d",x[n-1]); } void main() { int a[4]={1,2,3,4}; f(a, 4); } 程序执行后的输出结果是______。
A、4321234
B、43211234
C、1234321
D、12344321
55、有以下程序 int f(int n) { if (n==1) return 1; else return f(n-1)+1; } void main() { int i,j=0; for(i=1;i<3;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是______。
A、4
B、3
C、2
D、1
56、有如下程序: long fib(int n) { if(n>2) return (fib(n-1) + fib(n - 2)); else return(2); } void main() { printf("%d\n",fib(3)); } 该程序的输出结果是______。
A、2
B、4
C、6
D、8
57、以下程序的输出结果是______。 long fun(int n) { long s; if(n==1||n==2) s=2; else s=n-fun(n-1); return s; } void main() { printf("%ld\n",fun(3)); }
A、1
B、2
C、3
D、4
58、以下叙述中错误的是______。
A、在函数外部定义的变量在所有函数中都有效
B、在函数内部定义的变量只能在本函数范围内使用
C、函数中的形参属于局部变量
D、在不同的函数中可以使用相同名字的变量
59、以下叙述错误的是______。
A、未经赋值的全局变量值不确定
B、未经赋值的auto变量值不确定
C、未经赋值的register变量值不确定
D、未经赋值的静态局部变量值为0
60、以下与存储类别有关的四组说明符中,全部属于静态类的一组是______。
A、register和extern
B、auto和static
C、register和static
D、extern和static
61、有以下程序: #include int d=1; void fun(int p) { int d=5; d+=p++; printf("%d ", d ); } void main() { int a=3; fun( a ); d+=a++; printf("%d\n",d); } 程序的输出结果是______。
A、8 5
B、9 6
C、9 4
D、8 4
62、以下程序的结果是______。 int a,b; void fun() { a=100; b=200; } void main() { int a=5,b=7; fun(); printf("%d %d\n",a,b); }
A、100 200
B、5 7
C、200 100
D、7 5
63、有以下程序: #include void main() { int i=1, j=3; printf("%d," ,i++ ); { int i=0;i+=j*2; printf("%d,%d," ,i,j ); } printf("%d,%d\n" ,i,j ); } 程序运行后的输出结果是______。
A、1,6,3,1,3
B、1,6,3,2,3
C、1,6,3,6,3
D、1,7,3,2,3
64、有以下程序: int a=3; void main() { int s=0; { int a=5;s+=a++; } s+=a++; printf("%d\n",s); } 程序运行后的输出结果是_______。
A、8
B、10
C、7
D、11
65、在一个C源程序文件中所定义的全局变量,其作用域为______。
A、所在文件的全部范围
B、所在程序的全部范围
C、所在函数的全部范围
D、由具体定义位置和extern说明来决定范围
66、以下针对全局变量的叙述错误的是______。
A、用extern说明符可以限制全局变量的作用域
B、全局变量是在函数外部任意位置上定义的变量
C、全局变量的作用域是从定义位置开始至源文件结束
D、全局变量的生存期贯穿于整个程序的运行期间
67、有以下程序: int a=4; int f(int n) { int t=0; static int a=5; if(n%2) { int a=6; t+=a++; } else { int a=7; t+=a++; } return t+a++; } void main() { int s=a,i=0; for(;i<2;i++) s+=f(i); printf("%d\n",s); } 程序运行后的输出结果是______。
A、24
B、28
C、32
D、36
68、有以下不完整程序: #include int fun(int b) { 【】 return a+b; } void main() { int i; i=fun (5); printf ("%d\n",i); } int a=10; 若要程序能正确运行并得到结果15,在【】处,所应加入的变量声明是______。
A、extern int a;
B、register int a;
C、auto int a;
D、static int a;
69、以下叙述中正确的是______。
A、全局变量的存储类别可以是静态类
B、对于变量而言,"定义"和"说明"这两个词实际上是同一个意思
C、在复合语句中不能定义变量
D、函数的形式参数不属于局部变量
70、以下程序的输出结果是______。 int f() { static int i=0; int s=1; s+=i;i++; return s; } void main() { int i,a=0; for(i=0;i<5;i++) a+=f(); printf("%d\n",a); }
A、20
B、24
C、25
D、15
71、有以下程序: #define Out(n) n%2==0?"%c":"%d" #include void main() { int x; for(x=65; x<69; x++) printf(Out(x),x); } 程序的运行结果是______。
A、A66C68
B、65B67D
C、65666768
D、ABCD
72、有以下程序: #include #define S(x) 4*(x)*x+1 void main() { int k=5,j=2; printf("%d\n",S(k+j)); } 程序运行后的输出结果是______。
A、197
B、143
C、33
D、28
73、有一个名为init.txt的文件,内容如下: #define HDY(A,B) A/B #define PRINT(Y) printf("y=%d\n",Y) 有以下程序: #include"init.txt" void main() { int a=1,b=2,c=3,d=4,k; k=HDY(a+c,b+d);PRINT(k); } 下面针对该程序的叙述正确的是______。
A、编译出错
B、运行出错
C、运行结果为 y=0
D、运行结果为 y=6
74、有以下程序: #include #define S(x) x/x*x void main() { int k=6, j=3; printf("%d,%d\n",S(k+j),S(j+k)); } 程序运行后的输出结果是______。
A、27,27
B、9,9
C、27,29
D、29,29
75、以下程序的输出结果是______。 #include #define FUDGE(y) 2.84+y #define PR(a) printf("%d",(int)(a)) #define PRINT1(a) PR(a);putchar('\n') void main() { int x=2; PRINT1(FUDGE(5)*x); }
A、11
B、12
C、13
D、15
76、有以下程序: #include #define S(x) x*x void main() { int k=5, j=2; printf("%d,%d\n", S(k+j+2),S(j+k+2)); } 程序的运行结果是______。
A、21,18
B、81,81
C、21,21
D、18,18
77、以下叙述中正确的是______。
A、预处理命令行必须位于源文件的开头
B、在源文件的一行上可以有多条预处理命令
C、宏名必须用大写字母表示
D、宏替换不占用程序的运行时间
78、若程序中有宏定义行:#define N 100 则以下叙述中正确的是______。
A、宏定义行中定义了标识符N的值为整数100
B、在编译程序对C源程序进行预处理时用100替换标识符N
C、对C源程序进行编译时用100替换标识符N
D、在运行时用100替换标识符N
79、以下关于编译预处理的叙述中错误的是______。
A、预处理命令行必须位于源程序的开始
B、源程序中凡是以#开始的控制行都是预处理命令行
C、一行上只能有一条有效的预处理命令
D、预处理命令是在程序正式编译之前被处理的
80、程序中头文件type1.h的内容是: #define N 5 #define M1 N*3 程序如下: #include "type1.h" #define M2 N*2 void main() { int i;i=M1+M2; printf("%d\n",i); } 程序编译后运行的输出结果是______。
A、10
B、20
C、25
D、30
81、设有宏定义: #define IsDIV(k,n) ((k%n==1)?1:0) 且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是______。
A、判断m是否能被5或者7整除
B、判断m是否能被5和7整除
C、判断m被5或者7整除是否余1
D、判断m被5和7整除是否都余1
82、下面关于编译预处理的命令行,正确的是______。
A、#define PAI 3.14
B、#Define Eps 0.00001
C、##DEFINE FALSE 0
D、#define int INT
83、以下关于宏的叙述错误的是______。
A、宏名必须用大写字母构成
B、宏名不具有类型
C、宏替换不具有计算功能
D、宏替换不占用运行时间
84、有以下程序 #include int fun(int a, int b) { static int m=0, i=2; i+=m+1; m=i+a+b; return m; } void main() { int k=4, m=1, p; p=fun( k, m ); printf("%d,",p); p =fun( k, m ); printf("%d\n",p); } 程序运行后的输出结果是______。
A、8,16
B、8,17
C、8,8
D、8,20
85、有以下程序 #include int mm; int func(int a) { static int n=3; int i; for(i=1;i