第一周:从问题到C语言程序设计
1.1 计算机的问题求解方法随堂测验
1、结构化程序设计方法包含三种基本结构:
A、顺序结构
B、选择结构
C、循环结构
D、跳转结构
2、任何的程序都可以分成三部分,请问是哪三部曲?
A、输入
B、赋值
C、处理
D、输出
3、算法的特征包括什么?
A、有穷性
B、确定性
C、有效性
D、有零或多个输入,有一或多个输出
4、goto语句很方便,应该随意使用
5、程序设计包括以下五个步骤: (1)确定问题可计算; (2)建立问题的数学模型; (3)设计算法和数据结构; (4)选择合适的计算机语言编写程序; (5)调试运行程序分析结果。 这种说法正确吗?
6、计算复杂度包括【 】复杂度和空间复杂度。
1.2 C语言与C程序随堂测验
1、2.从描述客观系统来看,程序设计语言可以分为?
A、机器语言、汇编语言和高级语言
B、面向过程语言和面向对象语言
C、基础语言、结构化语言和专业语言
D、C语言、JAVA语言、Python语言等
2、4.C语言规定,以下不能作为标识符的?
A、字母
B、空格
C、数字
D、下划线
3、1.程序设计语言的发展经历了哪些阶段?
A、机器语言
B、汇编语言
C、C语言
D、高级语言
4、3.C语言属于面向对象语言的一种。
5、5.C语言规定,程序中的标示符由三种字符组成,其中第一个字符不允许使用( )?
6、6.一个C程序一般是由若干函数构成的,程序中至少应包含一个( )?
第二次课课后测试
1、下列说法正确的是
A、程序=数据结构
B、程序=算法
C、程序=数据结构+算法
D、程序=数据结构+编程语言
2、标识符中第一个字符不允许使用()。
A、数字
B、字母
C、_
D、本选项不要选
3、下列不属于变量类型的是()。
A、字符型
B、整型
C、实型
D、字符串型
4、把变量a定义为整型变量,下列语句正确的是()。
A、int a;
B、double a;
C、char a;
D、float a;
5、表达式“5*4-3*3%4”的结果是
A、19
B、18
C、4
D、2
6、C语言规定程序中的标识符只能由()、()和()三种字符组成
A、字母
B、数字
C、_
D、-
7、下列不正确的标识符是()。
A、ab-1
B、abc_1
C、_abc
D、1abc
E、printf
8、逻辑运算符包括()。
A、&&
B、||
C、--
D、!
9、1==5>3
10、4*5<36 % 40
第二周:数据计算实现与顺序结构程序设计(一)
2.1 算术运算的C程序实现随堂测验
1、以下程序的输出结果是____。 #include main( ) { int x=10, y=10; printf("%d %d\n", x--, --y); }
A、10 10
B、9 9
C、9 10
D、10 9
2.2 关系运算的C程序实现随堂测验
1、已知:x=10,y=2; 表达式x-5<=x+y的值是____
A、0
B、1
C、11
D、9
第四周:选择结构的程序设计
3.1 程序中的路径选择实现随堂测验
1、执行下列程序段后,x、y和z的值分别是 int x=10,y=20,z=30; if(x>y) z=x;x=y;y=z;
A、10,20,30
B、20,30,30
C、20,30,10
D、20,30,20
3.2 路径中的再选择——嵌套判断随堂测验
1、if语句的控制条件 。
A、只能用关系表达式
B、只能用关系表达式或逻辑表达式
C、只能用逻辑表达式
D、可以用任何表达式
3.3 复杂判断问题的C程序设计随堂测验
1、下面的程序片段所表示的数学函数关系是 y=-1; if (x!=0) { if (x>0) y=1;} else y=0;
A、
B、
C、
D、
3.4 多分支问题的C程序设计随堂测验
1、若a和b均是整型变量,以下正确的switch语句是
A、A. switch (a/b) { case 1: case 3.2: y=a+b; break ; case 0: case 5: y=a-b; }
B、B. switch (a*a+b*b); {case 3: case 1: y=a+b; break ; case 0: y=b-a; break; }
C、C. switch a { default : x=a+b; case 10 : y=a-b;break; case 11 : y=a*d; break; }
D、D. switch(a+b) {case 10: x=a+b; break; case 11: y=a-b; break; }
3.6 选择结构的程序实例随堂测验
1、以下程序的输出结果是____ main( ) { int w=4,x=3,y=2,z=1; if(x>y&&!(z==w))printf(”%d\n”,(wx?w:z>y?z:x)); }
A、1
B、2
C、3
D、4
2、if (!k) a=3;语句中的!k可以改写为 ,使其功能不变。
3、以下程序的输出是 main( ) { int a=0, b=0, c=0; if (a=b+c) printf (”*** a=%d\n”, a); else printf (”$$$ a=%d\n”, a); }
第三周:数据计算实现与顺序结构程序设计(二)
2.3 逻辑运算的C程序实现随堂测验
1、表示算术关系12≤x≤y的C语言表达式为 。
A、(12 <= x)|| ( x <= y )
B、(12 != x)| ( x != y )
C、(12 <= x)& ( x <= y )
D、(12 <= x)&& ( x <= y )
2.4 位运算的C程序实现随堂测验
1、假设a和b都是16位二进制整数,它们的值分别是: a: 1010,1001,0101,0111 b: 0110,0000,1111,1011 则c=(a>>2)|~b运算后,c的二进制表示为 。
2.5 几种很个别的运算随堂测验
1、已知int i,a; 执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是 。
A、6
B、12
C、30
D、36
2.6 混合运算及数据类型转换随堂测验
1、已知:char w; int x; float y; double z; 则表达式 w*x+z-y结果的类型是 。
2.7 顺序结构程序实例随堂测验
1、[4]
A、x1,x2
B、x1;x2
C、&x1,&x2
D、&x1;&x2
2、[3]
A、(-b-q)/(2*a)
B、-b-q/2*a
C、(-b-q)/2a
D、(-b-q)/2*a
3、请选择正确的语句来完善程序,完成如下的功能: 求一元二次方程
的根。 #include int main() { float a, b, c, x1, x2, q; printf("Please input a, b, c\n"); scanf("%f,%f,%f",&a,&b, [1] ); q=sqrt( [2] ); x1=(-b+q)/(2*a); x2= [3] ; printf("x1=%.0f, x2=%.0f\n", [4] ); } [1]
A、c
B、&c
C、%c
D、f
4、[2]
A、b*b-4*a*c
B、4*a*c-b*b
C、b^2-4ac
D、4ac-b^2
第五周:循环结构的程序设计(一)
4.1 需要重复执行的程序随堂测验
1、下列程序执行的结果是 a=1;b=2;c=3; while(a
A、1,2,0
B、2,1,0
C、1,2,1
D、2,1,1
4.2 至少要执行一次的循环随堂测验
1、指出程序结束之时,j、i、k的值分别是 main( ) { int a=10,b=5,c=5,d=5,i=0,j=0,k=0; for (;a>b;++b) i++; while (a>++c) j++; do k++; while (a>d++); }
A、j=5,i=4,k=6;
B、i=5,j=4,k=6;
C、j=6,i=5,k=7;
D、j=6,i=6,k=6;
2、下列程序段 x=3; do{ y = x--; if ( !y ) { printf(”x”); continue; } printf(”#”); } while(1<=x<=2);
A、输出 ##
B、输出 ##x
C、是死循环
D、有语法错
4.3 已知循环次数用for语句随堂测验
1、下面程序的功能是计算1-3+5-7+ …… -99+101的值。 ① main() { int i,t=1,s=0; for(i=1;i<=101;i+=2) { ① ; s=s+t; ② ; } printf(”%d\n”,s}; }
A、t = i * t
B、t = i * (t+1)
C、t = (i+1)* t
D、t = (i-1) * t
2、②
A、t = s
B、t = -s
C、t = s > 0 ? -1 : 1
D、t = s < 0 ? -1 : 1
3、for语句的三个表达式都是必须的。
4.4 循环控制——简单循环应用随堂测验
1、下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 ① main() { float x,amax,amin; scanf(”%f”,&x); amax=x; amin=x; while( ① ) { if(x>amax) amax=x; if( ② ) amin=x; scanf(”%f”,&x); } printf(”\namax=%f\namin=%f\n”,amax,amin); }
A、x >= 0
B、x <= 0
C、x > 0
D、x < 0
2、②
A、x <= amin
B、x > amin
C、x < amin
D、x >= amin
第六周:循环结构的程序设计(二)
4.5 循环的嵌套随堂测验
1、下面程序的输出结果是 #include int main( ) { int i,j; float s; for(i=6;i>4;i--) {s=0.0; for(j=i;j>3;j--)s=s+i*j; } printf(”%f\n”,s); }
A、135.000000
B、90.000000
C、45.000000
D、60.000000
4.6 break与continue随堂测验
1、下列说法中正确的是
A、break 可以用在任何选择和循环结构与居中
B、break 可以用在switch结构和任何循环结构中
C、continue可以用在switch结构和任何循环结构中
D、continue的功能是结束当前所在的循环
第七周:数组(一)
5.2 一维数组的定义和引用随堂测验
1、下面程序的输出结果是____。 #include 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
5.2 一维数组的定义和引用随堂测验
1、以下程序的功能:输入30个人的年龄,统计18岁、19岁、……、25岁各有多少人。填空,使程序正确。 main( ) { int i,n,age,a[30]={0}; for(i=0;i<30;i++) { scanf(”%d”,&age); __(1)__; } printf(”age number\n”); for(__(2)__;i++) printf(”%5d %6d\n”,i,a[i]); }
A、(1)for(n=18;n<25;n++) { if (age==n) a[n]++; } (2)i=18;i<=25
B、(1)for(n=18;n<=25;n++) { if (age==n) a[n]++; } (2)i=18;i<=25
C、(1)for(n=18;n<25;n++) { if (age=n) a[n]++; } (2)i=18;i<=25
D、(1)for(n=18;n<25;n++) { if (age==n) a[n]++; } (2)i=18;i<25
5.2 一维数组的定义和引用随堂测验
1、以下程序的功能: 在给定数组中查找某个数,若找到,则输出该数在数组中的位置,否则输出“can not found!”。填空,使程序正确。 main( ) { int i,n,a[8]={25,21,57,34,12,9,4,44}; scanf(”%d”,&n); for(i=0;i<8;i++) if(n==a[i]) { printf(”The index is %d\n”,i); __(1)__ ; } if(__(2)__) printf(”can not found!\n”); }
A、(1) end (2) i==8
B、(1) break (2) i==0
C、(1) break (2) i==8
D、(1) end (2) i==0
第八周:数组(二)
5.6 二维数组的输入输出随堂测验
1、以下正确的数组定义语句是____。
A、int y[2][3] = {1,2,3,4,5,6};
B、float x[3][ ] = {{1},{2},{3}};
C、long s[2][3] = {{1},{1,2},{1,2,3}};
D、double t[ ][3] = {0};
2、若有说明: int a[ ][4];则a[i][j]前有____个元素。
A、j*4+i
B、i*4+j
C、i*4+j-1
D、i*4+j+1
5.7 二维数组的应用随堂测验
1、求出如下所示矩阵中各行元素之和,并以矩阵形式输出原矩阵及相应行元素之和。请填空,使程序正确。
#include "stdio.h" int main( ) { int i,j; static int a[3][4]={{3,5,6,0},{2,1,4,0},{8,7,1,0}}; for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][3]+= __(1)__; for(i=0;i<3;i++) for( _(2)___ ) { printf(”%3d”,a[i][j]); if( _(3)___ ) printf( __(4)__ );} }
5.8 二维字符数组随堂测验
1、以下程序的输出是 ___。 main( ) {char a[2][5]={”6937”,”8254”}; int i,j,s=0; for ( i = 0; i < 2; i++ ) for ( j = 0; a[i][j]>’0’ && a[i][j]<=’9’; j+=2 ) s=10*s+a[i][j]-’0’; printf(”s=%d\n”,s); }
A、6385
B、69825
C、63825
D、693825
2、以下程序的功能:输入10个字符串,找出每个字符串的最大字符,并依次存入一维数组中,然后输出该一维数组。请填空使程序正确。 #include ”stdio.h” main( ) { int j,k; char a[10][80],b[10]; for(j=0;j<10;j++) gets(a[i]); for(j=0,j<10;j++) { _(1)___; for(k=1;a[j][k]!=’\0’;k++) if(b[j]
5.9 数组综合应用随堂测验
1、有一名室内装潢工程队的配料员,他很擅长采用“之”字型的方式铺大理石地砖,图案如下: 1 2 6 7 15 3 5 8 14 16 4 9 13 17 22 10 12 18 21 23 11 19 20 24 25 以下是生成这样图形的程序,请帮助补充完整: #include "stdio.h" int main() { int a[10][10],s=0,n,i=1,j=1,t=0; scanf("%d",&n); while (i1) for(i=1;i<=n;i++) {printf("%2d",a[i-1][0]); for(j=2;j<=n;j++) printf("%3d",a[i-1][j-1]); ___(2)____;} else printf("1\n"); return 0; }