第1章:程序设计与C语言
1 计算机和编程语言随堂测验
1、计算机本身最擅长的能力是?
A、推理
B、想像
C、重复
D、分析
2、计算机(CPU)可以直接运行人类编写的程序
3、编程语言是和计算机交谈的语言
2 C语言随堂测验
1、关于C语言,以下说法错误的有:
A、C语言是和Unix操作系统一同发展起来的
B、C语言不能写图形界面的软件
C、C语言一般是编译执行的
D、C语言诞生于1970年代
2、轻量级的编程软件,如Geany+MinGW或Sublime Text+MinGW,与专门的IDE如Dev C++相比,什么功能没有了?(提示:上课没有直接讲,但是间接提到了)
A、单步调试
B、源代码编辑时的语法高亮
C、编译程序
D、运行程序
3、IDE的中文翻译是什么?
第2章:计算
1 变量随堂测验
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
5、写出下式的运算结果: 10/3.0*3
6、写出下式的运算结果: 10/3*3.0
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
第2周 单元测验
1、0与0.0一样
2、1/2的值是0.5
3、=是运算符
4、70%60的值是10
5、在格式输入scanf函数中,%lf对应的数据类型是double
6、++a与a++不一样
第2章编程题
1、逆序的三位数
第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
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");
第3章编程题
1、时间换算
第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);
2 循环应用随堂测验
1、以下哪种运算能从变量x中取得十进制最低位的数字
A、x / 10
B、x % 10
C、x * 10
D、10 / x
2、当需要累加一些值的时候,用来记录累加结果的变量应该被初始为:
第4章编程题
1、奇偶个数
第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++); }
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);
第5章编程题
1、素数和
第一次单元测验
第一次单元测验
1、以下代码片段的输出是: 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、****
2、下列程序段输出结果为: int x=1, y=012; printf(“%d”,y*x++);
A、10
B、12
C、20
D、24
3、下面程序段的输出结果是? int k; while(k!=0) k=k-1; printf(“%d”, k);
A、0
B、无论k的初值如何,最终都会减到0的。
C、因为k没有初值,所以结果不确定
D、1
E、因为没有给k赋初值,因此程序不能通过编译
4、以下表达式x&&1 用在if的条件中时,和哪个是等价的:
A、x!=0
B、x
C、x==0
D、x==1
E、x!=1
5、以下哪个不是C语言的关键字?
A、include
B、if
C、while
D、int
E、for
6、以下哪个直接量是十进制的124?
A、0174
B、0x7C
C、124
D、0x124
E、0124
F、124d
7、对于以下代码: 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"
8、在代码: while ( !e ) 中,!e等价于:
A、e == 0
B、e != 1
C、e!=0
D、e == 1
9、下列可用于C语言程序标识符的一组是(名字间以逗号分隔):
A、For, _abc, IF
B、_if, _123, file
C、void, d, WORD
D、For, -abc, IF
E、k2, aa, _tt
F、2_a, xyz, b1_s
10、对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)
11、对于以下代码: int i,j=6; 以下哪句话是对的?
A、i不会被初始化,而j是6
B、i和j的初始值都是6
C、i被初始为0,而j是6
D、不能通过编译
12、对于以下代码: int i; scanf("%d", &i); i %= 4; 执行后,i会有几种可能性?
A、7
B、0
C、1
D、2
E、3
F、不好说
13、对于以下代码: int i=6; do { printf("%d", i--); } while (0); 哪句话是对的?
A、打印出6
B、打印出5
C、因为while(0),无法编译
D、打印不出东西
14、对于以下代码: int i; for ( i=0; i<10; i++) printf("%d", i); for循环后,i的值是多少?
A、10
B、9
C、11
D、i没有确定的值
E、i不存在
15、以下哪个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++);
16、与x * = y + z等价的赋值表达式是
A、x = y + z
B、x = x * y + z
C、x = x * (y + z)
D、x = x + y * z
17、语句printf(“%d”,(a=2)&&(b= -2));的输出结果是
A、-1
B、0
C、1
D、无输出
E、编译错误
18、下列四个叙述中,正确的是?
A、C语言不区分大小写
B、C语言所有的关键字都是小写的
C、C语言所有的关键字都必须大写
D、C程序中的关键字必须小写,其他标示符不区分大小写
E、C程序中的所有字母都必须小写
19、表达式17%4 /8的值为
A、0
B、1
C、2
D、3
E、4
20、以下代码的输出是 _____. int x=0, y=0, z=0; z = (x==1) && (y=2); printf("%d ", y);
21、表达式(double)(10/4*4) 的结果是_____
22、以下代码的输出是 : 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);
第6章:函数
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; }
第6章编程题
1、分解质因数
第7章:数组
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] 的值是?
第7章编程题
1、多项式加法
第8章:数据类型
1 数据类型随堂测验
1、以下哪个数字占据的空间最大?
A、32768
B、‘3’
C、32768.0
D、32768.0F
2、以下哪个字母不能在数字后面表示类型?
A、F
B、U
C、L
D、X
3、以下哪个数字的值最大?
A、10
B、010
C、0x10
D、10.0
4、以下哪种类型不能用在switch-case的判断变量中:
A、char
B、short
C、int
D、double
5、下列哪些是有效的字符?
A、‘ ’
B、‘\’‘
C、''
D、'\'
6、以下表达式的结果是: '1'+3
2 其他运算:逻辑、条件、逗号随堂测验
1、以下哪个表达式的结果是true?
A、!(4<5)
B、2>2||4==4&&1<0
C、34==33&&!false
D、!false
2、以下哪个表达式,当a和b中只有一个是true的时候结果为true,而如果两个都是false或都是true的时候,结果为false
A、a && b
B、a || b
C、a != b
D、!a && !b
3、以下哪个表达式与!(a&&b)是等价的
A、!a && !b
B、!a || !b
C、a && b
D、a || b
4、以下哪个表达式,当a和b都是true或者都是false的时候,表达式的结果为true。
A、a && b
B、a || b
C、a == b
D、a ^ b
5、以下代码执行后,i的值是: i = 3/2,3*2;
第8章编程题
1、计算分数精确值
第9章:指针
1 指针随堂测验
1、对于:int a[] = {5, 15, 34, 54, 14, 2, 52, 72}; int *p = &a[5]; 则: p[-2]的值是?
A、编译出错,因为数组下标越界了
B、运行出错,因为数组下标越界了
C、54
D、2
2、如果:int a[] = {0}; int *p = a; 则以下哪些表达式的结果为真?
A、p == a[0]
B、p == &a[0]
C、*p == a[0]
D、p[0] == a[0]
3、以下变量定义: int* p,q; 中,p和q都是指针。
4、对于:int a[] = {5, 15, 34, 54, 14, 2, 52, 72}; int *p = &a[1]; 则: p[2]的值是?