第1周:程序设计与C语言

第1周编程练习

1、输出“Hello World”

第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

2 数据类型随堂测验

1、写出下式的运算结果: 10/3.0*3 (如果认为结果是浮点数,请以小数点后一位小数来表示)

2、写出下式的运算结果: 10/3*3.0 (如果认为结果是浮点数,请以小数点后一位小数来表示)

3 表达式随堂测验

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、逆序的三位数

第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<j);

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<j == j<k);

2 循环随堂测验

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、while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了

3、以下代码片段执行结束后,变量i的值是多少?int i =10; while ( i>0 ) { i /=2; }

4、以下代码片段执行结束后,变量i的值是多少?int i = 1; do { i += 5; } while (i<17);

5、以下代码段的输出是什么?for ( int i=10; i> 1; i /=2 ) { printf("%d ", i++); }

第3周编程练习

1、时间换算

2、分队列

第4周:进一步的判断与循环

3 多路分支随堂测验

1、写出程序的输出:int i=1; switch ( i%3 ) { case 0: printf("zero"); case 1: printf("one"); case 2: printf("two"); }

4 循环的例子随堂测验

1、以下哪种运算能从变量x中取得十进制最低位的数字
    A、x /10
    B、x % 10
    C、x * 10
    D、10 / x

2、当需要累加一些值的时候,用来记录累加结果的变量应该被初始为:

第4周编程练习

1、奇偶个数

2、数字特征值

第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);

第5周编程练习

1、素数和

2、念整数

第6周:数组与函数

3 函数的参数和变量随堂测验

1、以下哪句不是正确的函数原型?
    A、int f();
    B、int f(int i);
    C、int f(int);
    D、int f() {}

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、以下程序的输出是什么?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; }

第一次单元测验

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、2_a, xyz, b1_s
    F、void,_2a, 2a

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);

第6周编程练习

1、高精度小数

第7周:数组运算

1 数组运算随堂测验

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、多项式加法

2、鞍点

第8周:指针与字符串

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[] = ; 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]的值是?

第8周编程练习

1、单词长度

2、GPS数据处理