欢迎光临,有需要请联系站长!
想要快速找到正确答案?
立即关注 超新尔雅学习通微信公众号,轻松解决学习难题!
作业辅导
扫码关注
论文指导
轻松解决学习难题!
第1周编程练习
第1周选择题
1、【单选题】下列叙述中错误的是?
A、计算机不能直接执行用C语言编写的源程序
B、C程序经C编译程序编译后,生成扩展名为obi的文件是一个二进制文件
C、扩展名为obj的文件,经连接程序生成扩展名为exe的文件是一个二进制文件
D、扩展名为obj和exe的二进制文件都可以直接运行
2、【单选题】下列叙述中正确的是?
A、C语言程序将从源程序中第一个函数开始执行
B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C、C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D、main可作为用户标识符,用以命名任意一个函数作为主函数
3、【单选题】以下叙述中正确的是?
A、 C程序中的注释只能出现在程序的开始位置和语句的后面
B、C程序书写格式严格,要求一行内只能写一个语句
C、C程序书写格式自由,一个语句可以写在多行上
D、用C语言编写的程序只能放在一个程序文件中
4、【单选题】下列叙述中正确的是?
A、用C程序实现的算法必须要有输人和输出操作
B、用C程序实现的算法可以没有输出但必须要有输人
C、用C程序实现的算法可以没有输人但必须要有输出
D、用C程序实现的算法可以既没有输人也没有输出
5、【单选题】下列叙述中错误的是?
A、用户所定义的标识符允许使用关键字
B、用户所定义的标识着应尽量做到“见名知意”
C、用户所定义的标识符必须以字母或者下划线开头
D、用户定义的标识符中,大、小写字母代表不同标识
6、【单选题】下列不合法的用户标识符是?
A、j2_KEY
B、 Double
C、4d_a
D、_8_
7、【单选题】以下选项中合法的用户标识符是?
A、long
B、_2Test
C、3Dmax
D、A.dat
8、【单选题】结构化程序由三种基本结构组成,三种基本结构组成的算法:
A、可以完成任何复杂的任务
B、只能完成部分复杂的任务
C、只能完成符合结构化的任务
D、只能完成一些简单的任务
9、【单选题】下列叙述中错误的是?
A、C语言源程序经编译后生成扩展名为obj的目标程序
B、C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C、用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D、C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
10、【单选题】下列选项中不属于结构化程序设计方法的是?
A、自顶向下
B、逐步求精
C、模块化
D、可复用
小测验
1、【多选题】给定: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);
2、【多选题】以下哪些是有效的变量名?
A、main
B、4ever
C、monkey-king
D、__int
3、【多选题】给定:int a,b;scanf("%d %d", a, b);则以下哪些输入方式是正确的?
A、1 2
B、1,2
C、1(回车)2
D、1、2
4、【判断题】给定以下代码段:int a,b=0;则a的初始值是0
A、正确
B、错误
小测验
1、【填空题】写出下式的运算结果:10/3.0*3(如果认为结果是浮点数,请以小数点后一位小数来表示)
A、
2、【填空题】写出下式的运算结果:10/3*3.0(如果认为结果是浮点数,请以小数点后一位小数来表示)
A、
小测验
1、【填空题】写出以下代码执行后,t1和t2的值,以空格隔开:int a=14;int t1 = a++;int t2 = ++a;
A、
2、【填空题】写出以下表达式的结果,结果之间间隔一个空格:6 + 5 / 4 - 22 + 2 * (2 * 2 - 2) % 2 / 310 + 9 * ((8 + 7) % 6) + 5 * 4 % 3 * 2 + 3 1 + 2 + (3 + 4) * ((5 * 6 % 7 / 8) - 9) * 10
A、
第2周编程练习
第2周选择题
1、【单选题】C语言中,运算对象必须是整型数的运算符是
A、%
B、 \
C、%和\
D、 /
2、【单选题】以下能正确地定义整型变量a, b和c并为它们赋初值5的语句是
A、 int a=b=c=5;
B、int a, b, c=5;
C、 a=5, b=5, c=5;
D、int a=5, b=5, c=5;
3、【单选题】如下程序的执行结果是 int main (void) { int i, sum=0; for (i=1; i=3; sum++) sum += i; printf(%d\n, sum); return 0; }
A、6
B、3
C、死循环
D、0
4、【单选题】下列两条语句int c1=1, c2=2, c3; c3=1.0/c2*c1; 执行后变量c3中的值是
A、0
B、0.5
C、1
D、2
5、【单选题】下列程序的功能是: 给输入数据后计算半径为r的圆面积s。程序在编译时出错,原因是 int main(void) /* hangzhou */ { int r; float s; scanf (8a,r); s = PI * r * r; printf(s=%f\n, s); return 0; }
A、注释语句书写位置错误
B、存放圆半径的变量r不应该定义为整型
C、输出语句中格式描述符非法
D、计算圆面积的赋值语句中使用了非法变量
6、【单选题】设变量已正确定义,则以下能正确计算f=n!的程序段是
A、f=0;for (i=1; i<=n; i++) f *= i;
B、f=1;for (i=1; i<n; i++) f *= i;
C、f=1;for (i=n; i>1; i++) f *= i;
D、f=1;for(i=n; i>=2; i--) f *= i;
7、【单选题】下列条件语句中,功能与其他语句不同的是
A、 if(a) prinf("%d\n", x); else printf("%d\n", y);
B、if(a==0) printf("%d\n", y); else printf("%d\n", x);
C、if(a!=0) print("%d\n", x); else printf( "%d\n", y);
D、if(a==0) printf("%d\n", x); else printf("%d\n", y);
8、【单选题】下列程序的功能是 int main (void) { int i, s=0; for (i=1; i10; i+=2) s += i+1; printf(%d\n, s); return 0; }
A、自然数1-9的累加和
B、自然数1-10累加和
C、自然数1-9的奇数之和
D、自然数1-10中的偶数之和
9、【单选题】下列程序的运行结果是 int main (void){ int a, b, c; a=20; b=30; c=10; if (ab) a=b; if (a=b) b=c; c=a; printf(a=%d, b=%d, c=%d, a, b, c); return 0; }
A、a=20, b=10, c=20
B、a=30, b=10, c=20
C、a=30, b=10, c=30
D、a=30, b=10, c=20
10、【单选题】等比数列的第一项a=1, 公比q=2, 下面程序段计算前n项和小于100的最大n。程序划线处应填 int main (void){ int a, q, n, sum; a=1; q=2; for (n=sum=0; sum100; n++) { sum += a; a *= q; } ____________; printf (n=%d\n, n); return 0; }
A、空行
B、n -= 2;
C、n--;
D、n++;
小测验
1、【判断题】以下语句是否可以通过编译:if ( 1=n=10 );
A、正确
B、错误
2、【判断题】以下语句是否表示n属于[1,10]:if ( 1=n=10 );
A、正确
B、错误
3、【填空题】写出程序的输出结果:int i,j,k;i=5; j=10; k=1;printf("%d", kij);
A、
4、【填空题】写出程序的输出结果:int i,j,k;i=2;j=3;k = i*j==6;printf("%d\n", k);
A、
5、【填空题】写出程序的输出结果:int i,j,k;i=3;j=2;k=1;printf("%d", ij == jk);
A、
小测验
1、【填空题】写出程序的输出:int i=1; switch ( i%3 ) { case 0: printf(zero); case 1: printf(one); case 2: printf(two); }
A、
第3周编程练习
第3周编程题(新,请同学们做这个!)
第3周选择题
1、【单选题】若变量x、y都为int型数,以下表达式中不能正确表示数学关系|x-y|10的是
A、abs(x-y)<10
B、x-y>-10 && x-y<10
C、(x-y)<-10 || !(y-x)>10
D、(x-y)*(x-y)<100
2、【单选题】有定义语句int a=1, b=2, c=3, x, 则以下各程序段执行后,x的值不为3的是
A、if(c<a) x=1;else if(b<a) x=2;else x=3;
B、if(a<3) x=3;if(a<2) x=2;if(a<1) x=1;
C、if(a<b) x=b;if(b<c) x=c;if(c<a) x=a;
D、if(a<3) x=3;else if(a<2) x=2;else x=1;
3、【单选题】执行 x = -1; do { x = x * x ;} while (x == 0); 循环时,下列说法正确的是
A、循环体将执行一次
B、循环体将执行两次
C、循环体将执行无限次
D、系统将提示有语法错误
4、【单选题】假设变量s 、a 、b 、c均已定义为整型变量,且a、c均已赋值(c大于0),则与以下程序段s=a;for(b=1;b=c;b++)s=s+1;功能等价的赋值语句是
A、s=a+b
B、s=a+c
C、s=s+c
D、s=b+c
5、【单选题】int main(void){ int num=0,s=0; while(num=2) { num++; s+=num; } printf(%d\n,s); return 0;}
A、10
B、6
C、3
D、1
6、【单选题】下面程序运行时如果输人-1 2 3 3 6 2回车,则输出结果是 int main (void) { int t, a, b, i; for(i=1; i=3; i++) { scanf (%d%d, a, b); if(ab) t = a-b; else if(a==b) t = 1; else t = b-a; printf(%d, t); } return 0; }
A、304
B、314
C、134
D、316
7、【单选题】下列程序运行时输人7mazon回车,则输出结果是 int main (void) { char c; int i; for(i=1; i=5; i++) { c = getchar(); if(c='a' c='u') c+=5; else if(c='v' c='z') c='a'+c-'v'; putchar(c); } return 0; }
A、 7rfet
B、7rfets
C、rfet
D、rfets
8、【单选题】下列程序段运行时从键盘上输人2.0回车,则输出结果是 int main(void) { float x, y; scanf(%f, x); if(x0.0) y = 0.0; else if((x5.0) (x!=2.0)) y = 1.0/(x+2.0); else if(x10.0) y = 1.0/x; else y=10.0; printf (%f\n, y); return 0; }
A、0.000000
B、0.250000
C、0.500000
D、1.000000
9、【单选题】下列程序段的输出结果是 int main (void){ int x=100, a=10, b=20, ok1=5, ok2=0; if(ab) if(b!=15) if(!ok1) x=1; else if(ok2) x=10; x=-1; printf(%d\n, x); return 0; }
A、-1
B、0
C、1
D、不确定的值
10、【单选题】下列程序段运行后x的值是 int a=0, b=0, c=0, x=35; if(!a) x--; else if(b); if(c) x=3; else x=4;
A、34
B、4
C、35
D、3
第3周选择题(新,请同学们做这个!)
1、【单选题】若变量x、y都为int型数,以下表达式中不能正确表示数学关系|x-y|10的是
A、x-y>-10 && x-y<10
B、(x-y)*(x-y)<100
C、abs(x-y)<10
D、(x-y)<-10 || !(y-x)>10
2、【单选题】有定义语句int a=1, b=2, c=3, x, 则以下各程序段执行后,x的值不为3的是
A、if(c<a) x=1; else if(b<a) x=2; else x=3;
B、if(a<3) x=3; if(a<2) x=2; if(a<1) x=1;
C、if(a<b) x=b; if(b<c) x=c; if(c<a) x=a;
D、if(a<3) x=3; else if(a<2) x=2; else x=1;
3、【单选题】下列程序段运行时从键盘上输人2.0回车,则输出结果是 int main(void) { float x, y; scanf(%f, x); if(x0.0) y = 0.0; else if((x5.0) (x!=2.0)) y = 1.0/(x+2.0); else if(x10.0) y = 1.0/x; else y=10.0; printf (%f\n, y); return 0; }
A、1.000000
B、0.500000
C、0.250000
D、0.000000
4、【单选题】下列程序段的输出结果是 int main (void){ int x=100, a=10, b=20, ok1=5, ok2=0; if(ab) if(b!=15) if(!ok1) x=1; else if(ok2) x=10; x=-1; printf(%d\n, x); return 0; }
A、0
B、-1
C、不确定的值
D、1
5、【单选题】下列程序段运行后x的值是int a=0, b=0, c=0, x=35; if(!a) x--; else if(b); if(c) x=3; else x=4;
A、35
B、34
C、3
D、4
6、【单选题】能正确表示逻辑关系"a大于等于10或者小于等于0"的C语言表达式是___.
A、a>=10 or a<=0
B、a>=0 | a<=10
C、a>=10 && a<=0
D、a>=10 || a<=0
7、【单选题】下列叙述正确的是
A、break 语句只能用于 switch 语句
B、在 switch 语句中必须使用 default
C、 break 语句必须与 switch 语句中的 case 配对使用
D、 在 switch 语句中,不一定使用 break 语句
8、【单选题】在嵌套使用if语句时,C语言规定 else 总是__
A、和之前与其具有相同缩进位置的 if 配对
B、和之前与其最近的if 配对
C、和之前与其最近的且不带else 的if 配对
D、和之前的第一个if 配对
9、【单选题】下列程序段的输出结果是int a=2, b=-1, c=2; if(ab) if(b0) c=0; else c++; printf(%d\n, c);
A、2
B、1
C、0
D、3
10、【单选题】在执行以下程序时,为使输出结果为t=4,则给a和b输入的值应满足的条件是____.int a, b, s, t; scanf(%d,%d, a, b); s=1; t=1; if(a0) s=s+1; if(ab) t=s+t; else if(a==b) t=5; else t=2*s; printf(t=%d\n, t);
A、a>b
B、0<a<b
C、0>a>b
D、a<b<0
第4周编程练习
第4周选择题
1、【单选题】以下程序段若要使输出值为2,则应该从键盘给n输人的值是 int main (void) { int s=0, a=1, n; scanf(%d, n); do { s+=1; a=a-2; } while(a!=n); printf(%d\n,s); return 0; }
A、-1
B、-3
C、-5
D、0
2、【单选题】要求以下程序的功能是计算: s=1 + 1/2 + 1/3 + ... + 1/10, 但运行后输出结果错误,导致错误结果的程序行是 int main (void){ int n; float s; s=1.0; for(n=10; n1; n--) s=s+1/n; printf(%6.4f\n,s); return 0; }
A、int n; float s;
B、for(n=10; n>1; n--) s=s+1/n;
C、s=s+1/n;
D、s=1.0;
3、【单选题】以下程序段的输出结果是 int i,j; for (i=1; i4; i++){ for(j=i; j4; j++) printf(%d*%d=%d, i, j, i*j); printf(\n); }
A、1*1=1 1*2=2 1*3=32*1=2 2*2=43*1=3
B、1*1=1 1*2=2 1*3=32*2=4 2*3=63*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
4、【单选题】若i, j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for(i=5; i; i--) for(j=0; j4; j++){...}
A、20
B、25
C、24
D、30
5、【单选题】以下程序段的输出结果是 int i, j; for(j=10; j11; j++) for(i=9; i==j-1; i++) printf(%d, j);
A、11
B、10
C、9
D、1011
6、【单选题】以下程序段的输出结果是 int n=9; while (n6){ n--; printf(%d, n); }
A、987
B、876
C、8765
D、9876
7、【单选题】以下程序段的输出结果是 int x=23; do { printf(%d, x--); } white (!x);
A、321
B、23
C、22
D、死循环
8、【单选题】以下程序的功能是: 按顺序读人10名学生4门课程的成绩,计算每位学生的平均分并输出,但运行后结果不正确,调试中发现有一条语句出现的位置不正确。这条语句是 int main (void) { int n, k; float score, sum, ave; sum=0.0; for(n=1; n=10; n++) { for(k=1; k=4; k++) { scanf(%f, score); sum+=score; } ave=sum/4.0; printf(NO%d:%f\n, n, ave); } return 0; }
A、sum=0.0;
B、sum+score;
C、ave=sun/4.0;
D、printf ("NO%d:%f\n", n, ave);
9、【单选题】在下列给出的表达式中,与while(E)中的(E)不等价的表达式是
A、(!E==0)
B、(E>0||E<0)
C、 (E==0)
D、 (E!=0)
10、【单选题】下列程序的输出结果是 int main (void) { int i; for (i=0; i3; i++) switch (i) { case 1: printf(%d, i); case 2: printf(%d, i); default: printf(%d, i); } return 0; }
A、012
B、011122
C、120
D、012020
11、【单选题】若变量已正确定义,要求程序段完成求5!的计算,以下不能完成此操作的是
A、for(i=1, p=1; i<=5; i++) p*=i;
B、for(i=1; i<=5; i++){p=1; p*=i;}
C、i=1; p=1; while(i<=5){p*=i; i++;}
D、i=1; p=1; do{p*=i; i++;}while(i<=5);
第5周编程练习
第5周选择题
1、【单选题】以下程序的功能是: 键盘上输人若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输人,①、②、③处的正确语句分别为: int main(void) { float x, amax, amin; scanf(%f, x); amax=x; amin=x; while( ① ) { if(xamax) amax=x; if( ② ) amin=x; ③ ; } printf (\namax=%f\namin=%f\n”, amax, amin); return 0; }
A、x == -1 x < amax scanf("%f", &x)
B、 x != -1 x < amin scanf("%lf", &x)
C、x > 0 x < amin scanf("%lf", &x)
D、x >= 0 x < amin scanf("%f", &x)
2、【单选题】以下程序运行后的输出结果是: int main(void) { int i=10, j=0; do{ j=j+1; i--; }while (i2); printf (%d\n, j); return 0; }
A、52
B、8
C、54
D、10
3、【单选题】以下程序运行后从键盘上输人1298,则输出结果为: int main(void) { int n1, n2; scanf (%d, n2); while (n2 != 0) { n1=n2 % 10; n2=n2/10; printf(%d, n1); } return 0; }
A、1298
B、8921
C、2198
D、9821
4、【单选题】执行下面的程序后变量a的值为: int main (void) { int a, b; for(a=1,b=1; a=100; a++){ if (b10) break; if (b%3 == 1) { b+=3; continue; } b-=3; } return 0; }
A、7
B、13
C、5
D、10
5、【单选题】下面程序运行时输入-1 0, 输出结果是:int main(void){ int a, b, m=1, n=1; scanf(%d%d, a, b); do { if(a0) { m=2*n; b++; }else{ n=m+n; a+=2; b++; } }while(a==b); printf(m=%d n=%d, m, n); return 0;}
A、m=2 n=4
B、m=2 n=2
C、 m=4 n=2
D、m=4 n=4
6、【单选题】有下列程序段,且变量已正确定义和赋值 for(s=1.0, k=1; k=n; k++) s=s+1.0/(k*(k+1)); printf(s=%f\n\n, s);使下列程序段与上述程序段功能完全相同,则①、②处的正确语句分别为: s=1.0; k=1; while( ① ) { s=s+1.0/(k*(k+1)); ②; } printf(s=%f\n\n, s);
A、k<=n n++
B、n<=k n++
C、k<=s k++
D、k<=n k++
7、【单选题】下面程序的功能是输出以下形式的金字塔图案。则①、②处的正确语句分别为: * *** ***** ******* int main(void) { int i, j; for(i=1; i=4; i++) { for(j=1; j=4-i; j++) printf( ); for(j=1; j=①; j++) printf(*); ② ; } return 0; }
A、2*i-1 continue
B、2*i-1 break
C、2*i-1 printf("\n")
D、2*i printf("\n")
8、【单选题】下面程序段的功能是: 输出100以内能被3整除且个位数为6的所有整数。则①、②处的正确语句分别为:int i, j;for(i=0; ①; i++){ j=i*10+6; if( ② ) continue; printf(%d, j);}
A、i<100 j%6!=0
B、i<10 j%3!=0
C、j<100 j%3!=0
D、j<10 j%6!=0
9、【单选题】下列程序输出1至100之间的所有每位数字的积大于每位数字的和的数,则①、②、③处的正确语句分别为: 如23即为符合要求的数字,因为2x32+3。 int main(void) { int n, k=1, s=0, m; for(n=1; n=100; n++) { ① ; m=n; while(m!=0) { ② ; ③ ; m=m/10; } if(ks) printf(%d, n); } return 0; }
A、k=1; s=0 k=k*(m % 10) s=s+m % 10
B、k=0; s=1 k=k*(m % 10) s=s+m % 10
C、k=0; s=1 s=s*(m % 10) k=k+m % 10
D、k=1; s=0 s=s*(m % 10) k=k+m % 10
10、【单选题】以下程序段的输出结果是:int main (void) { int i; for(i=1; i=5; i++) { if(i%2) printf(); else continue; printf(); } printf($); return 0;}
A、<><>$
B、<><><>$
C、<<<>>>$
D、<<<$
第6周编程练习
第6周选择题
1、【单选题】若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
A、函数调用可以出现在表达式中
B、函数调用可以作为独立的语句存在
C、函数调用可以作为一个函数的实参
D、函数调用可以作为一个函数的形参
2、【单选题】以下叙述中不正确的是
A、在不同的函数中可以使用相同名字的变量
B、函数中的形式参数是局部变量
C、在一个函数内定义的变量只在本函数范围内有效
D、在一个函数内的复合语句中定义的变量在本函数范围内有效
3、【单选题】C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是
A、void
B、int
C、float
D、double
4、【单选题】下列程序的输出结果是 int MyFunction(int); int main (void) { int entry=12345; printf(%5d, MyFunction(entry)); return 0; } int MyFunction (int Par ) { int result; result=0; do{ result=result*10+Par % 10; Par/=10; }while(Par); return result; }
A、12345
B、543
C、5432
D、54321
5、【单选题】下列程序的输出结果是 int fun3(int x) { static int a=3; a+=x; return (a); } int main(void) { int k=2, m=1, n; n=fun3(k); n=fun3(m); printf(%d, n); return 0; }
A、3
B、4
C、6
D、9
6、【单选题】下列程序的运行结果是 int x1=30, x2=40; sub(int x, int y) { x1=x; x=y; y=x1; } int main(void) { int x3=10, x4=20; sub(x3, x4); sub(x2, x1); printf(%d,%d,%d,%d, x3, x4, x1, x2); return 0; }
A、10, 20, 40, 40
B、10, 20, 30, 40
C、10, 20, 40, 30
D、20, 10, 30, 40
7、【单选题】下列程序的输出结果是 void fun(int a, int b, int c){ a=456; b=567; c=678; } int main (void) { int x=10, y=20, z=30; fun(x, y, z); printf(%d,%d,%d, x, y, z); return 0; }
A、30, 20, 10
B、456, 567, 678
C、10, 20, 30
D、678, 567, 456
8、【单选题】下列程序的输出结果是 int fun(int x, int y) { static int m=0, i=2; i += m+1; m = i+x+y; return m; } int main (void) { int j=1, m=1, k; k=fun(j, m); printf(%d,, k); k=fun(j, m); printf(%d, k); return 0; }
A、5, 5
B、5, 11
C、11, 11
D、11, 5
9、【单选题】下列程序的输出结果是 void f(int v, int w) { int t; t=v; v=w; w=t; } int main(void){ int x=1, y=3, z=2; if(xy) f(x, y); else if(yz) f(y, z); else f(x, z); printf(%d,%d,%d, x, y, z); return 0; }
A、1, 2, 3
B、3, 1, 2
C、1, 3, 2
D、2, 3, 1
10、【单选题】下列程序执行后输出的结果是 int f(int a) { int b=0; static int c=3; a=c++, b++; return (a); } int main(void) { int a=2, i, k; for(i=0; i2; i++) k=f(a++); printf(%d, k); return 0; }
A、3
B、0
C、5
D、4
第7周编程练习
第7周编程练习(新,请同学们做这个!!!)
第7周选择题
1、【单选题】C语言中最简单的数据类型包括
A、整型、实型、逻辑型
B、整型、实型、字符型
C、整型、字符型、逻辑型
D、整型、实型、逻辑型、字符型
2、【单选题】下列选项中, 值为1的表达式是
A、1-'0'
B、1-'\0'
C、'1'-0
D、'\0'-'0'
3、【单选题】下列程序的输出结果是 int main(void) { int k=11; printf(k=%d, k=%o, k=%x\n, k, k, k); return 0; }
A、k=11, k=12, k=11
B、k=11, k=13, k=13
C、k=11, k=013, k=0xb
D、k=11, k=13, k=b
4、【单选题】设有定义int a=1, b=2, c=3, d=4, m=2, n=2;, 则执行表达式(m=ab)(n=cd)后, n的值为
A、1
B、2
C、3
D、0
5、【单选题】以下选项中, 非法的字符常量是
A、't'
B、'\65'
C、"n"
D、'\t'
6、【单选题】下列关于单目运算符++、--的叙述正确的是
A、它们的运算对象可以是任何变量和常量
B、它们的运算对象可以是char型变量和int型变量, 但不能是float型变量
C、它们的运算对象可以是int型变量, 但不能是double型变量和float型变量
D、它们的运算对象可以是char型变量、int型变量和float型变量
7、【单选题】设变量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;
8、【单选题】设有定义int k=0;, 下列选项的4个表达式中与其他3个表达式的值不相同的是
A、k++
B、k+=1
C、++k
D、k+1
9、【单选题】已有定义int x=3,y=4,z=5;, 则表达式!(x+y)+z-1y+z/2的值是
A、6
B、0
C、2
D、1
10、【单选题】已知字符A的ASCI代码值是65, 字符变量c1的值是A, c2的值是D。执行语句printf(%d,%d,c1,c2-2);后, 输出结果是
A、A,B
B、A,68
C、65,66
D、65,68
11、【单选题】在以下一组运算符中, 优先级最高的运算符是
A、<=
B、=
C、%
D、&&
12、【单选题】若有定义char c1='b',c2='e';, 则语句printf(%d,%c\n,c2-c1,c2-'a'+'A');的输出结果是
A、2,M
B、3,E
C、2,E
D、格式控制不一致, 结果不确定
13、【单选题】若有定义char a; int b; float c; double d;, 则表达式a*b+d-c值的类型为
A、float
B、int
C、char
D、double
14、【单选题】与语句y=(x0?1:x0?-1:0);功能相同的if语句是
A、 if(x>0)y=1; else if(x<0)y=-1; else y=0;
B、 if(x) if(x>0)y=1; else if(x<0)y=-1; else y=0;
C、 y=-1; if(x) if(x>0)y=1; else if(x==0)y=0; else y=-1;
D、 y=0; if(x>=0) if(x>0)y=1; else y=-1;
15、【单选题】设有定义int a=2,b=3,c=4;, 则下列选项中值为0的表达式是
A、(!a==1)&&(!b==0)
B、(a<b)&&!c‖1
C、a&&b
D、a‖(b+b)&&(c-a)
小测验
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; i3; i++ ) { printf(%d, m[k][i]); }
A、369
B、不能通过编译
C、789
D、能编译,但是运行时数组下标越界了
3、【填空题】假设int类型变量占用4个字节,定义数组int x[10] = {0,2,4};则x在内存中占据几个字节?
A、
4、【填空题】若有:int a[][3] = {{0},{1},{2}};则a[1][2]的值是?
A、
第8周编程练习
第8周选择题
1、【单选题】假定int类型变量占用两个字节,已有定义“int x[10]=[0, 2, 4];”。则数组x在内存中所占字节数是
A、3
B、6
C、10
D、20
2、【单选题】以下能正确定义数组并正确赋初值的语句是
A、int N=5, b[N][N];
B、int a[1][2]={{1}, {3}};
C、int a[1][2]={{1}, {3}};
D、int d[3][2]={{1, 2}, {34}};
3、【单选题】下述对C语言字符数组的描述中错误的是
A、字符数组可以存放字符串
B、字符数组中的字符串可以整体输入、输出
C、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D、不可以用关系运算符对字符数组中的字符串进行比较
4、【单选题】设有数组定义“char array[] = China;”。 则数组array所占的空间为
A、4个字节
B、5个字节
C、6个字节
D、7个字节
5、【单选题】有定义“char x[]=abedefg; char y[]={'a', 'b', 'c', 'd', 'e', 'f', 'g'};”。 则正确的叙述为
A、数组x和数组y等价
B、数组x和数组y的长度相同
C、数组x的长度大于数组y的长度
D、数组x的长度小于数组y的长度
6、【单选题】下列能正确定义字符串的语句是
A、char str[] = '\064';
B、char str = "kx43";
C、char str=" ";
D、char str[ ]="\0";
7、【单选题】下列程序的输出结果是 int main (void) { int n[3], i, j, k; for(i=0; i3; i++) n[i]=0; k=2; for(i=0; ik; i++) { for(j=0; jk; j++) { n[j]=n[i]+1; } } printf(%d\n, n[1]); return 0; }
A、2
B、1
C、0
D、3
8、【单选题】以下程序的输出结果是 int main (void) { int a[3][3]={{1,2},{3,4},{5,6}}, i, j, s=0; for(i=1; i3; i++) { for(j=0; j=i; j++) { s += a[i][j]; } } printf(%d, s); return 0; }
A、18
B、19
C、20
D、21
9、【单选题】以下程序的输出结果是 int main(void){ int k; char w[][10] = {ABCD,EFGH, IJKO, MNOP}; for(k=1; k3; k++){ printf(%s\n, w[k]); } return 0; }
A、ABCDFGHKL
B、ABCDEFGHIJKL
C、EFGJKL
D、EFGHIJKO
10、【单选题】以下程序的输出结果是 int main (void) { int m[][3] = {1, 4, 7, 2, 5, 8, 3, 6, 9}; int i, j, k=2; for(i=0; i3; i++) { printf(%d, m[k][i]); } return 0; }
A、456
B、258
C、369
D、789
11、【单选题】下列程序运行时输人“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\n,c, i, s); return 0; }
A、123,456,789
B、1,456,789
C、1,23,456,789
D、1,23,456
12、【单选题】以下程序的输出结果是 int main (void){ int p[8] = {11, 12, 13, 14, 15, 16, 17, 18}, i=0, j=0; while(i++7) if(p[i]%2) j += p[i]; printf(%d\n, j); return 0; }
A、42
B、45
C、56
D、60
13、【单选题】以下程序的输出结果是 int main (void) { int x[] = {1, 3, 5, 7, 2, 4, 6, 0}, i, j, k; for(i=0; i3; i++) for(j=2; j=i; j--) if(x[j+1]x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0; i3; i++) for(j=4; j7-i; j++) if(x[j+1]x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0; i3; i++) for(j=4; j7-i; j++) if(x[j]x[j+1]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0; i8; i++) printf(%d, x[i]); printf(\n); return 0; }
A、75310246
B、01234567
C、75310462
D、13570246
14、【单选题】下列程序的运行结果是 int main(void){ int a[3][3] = {{1, 2, 3}, {4, 6, 2}, {9, 3, 6}}, s=0; int i, j, k=1; for(i=0; i3; i++) { for(j=0; j3; j++) a[i][j] = a[i][j]/k; k++; } for(i=0; i3; i++) s += a[i][i]; printf(%d, s); return 0; }
A、3
B、6
C、7
D、14