C语言程序设计中国大学mooc作业答案

日期:2022-08-10 07:00:48

第1次 实践课预备(Microsoft Visual C++6.0 简单操作)

Microsoft Visual C++6.0 简单操作 及 hello.cpp随堂测验

1、输出"I LOVE YOU !"到屏幕上,使用下面哪条语句?
    A、printf(I LOVE YOU !);
    B、printf("I LOVE YOU !");
    C、printf("I LOVE YOU !")
    D、printf("I LOVE YOU");

2、不会报错误的是
    A、int main() { }
    B、int main() { return 0; }
    C、int mian() { return 0; }
    D、int mian() { }

第1次 实践课作业1(系统自动评分)

1、参考hello.cpp的源程序。 在屏幕上输出hello China

第1次 实践课作业2(系统自动评分)

1、在屏幕上输出如下菜单内容: ***菜单*** *1.新建 *2.打开 *0.退出 中国大学mooc作业答案

****

第2周:第一章 简易数字时钟(中)

任务1.4最短耗时(1)随堂测验

1、1.关系表达式: -10>=-20 的结果是多少?

2、2.关系表达式:7!=15 的结果是多少?

3、3.下面程序结果是 : int i=0; if(++i>0) printf("%d",i);

4、4.下面程序段结果是 多少: int i=1; if(i-->0) printf("%d",i);

任务1.5求最短耗时(2)随堂测验

1、1.以下程序的运行结果是 。 #include "stdio.h" void main( ) { int m=5; if (m++>5) printf("%d\n",m); else printf("%d\n",m+1); }
    A、4
    B、6
    C、5
    D、7

2、2.以下程序的运行结果是 。 #include "stdio.h" void main( ) { int k=5; if (--k<5) printf("%d\n",k); else printf("%d\n",k+1); }
    A、4
    B、6
    C、5
    D、7

任务1.6求最短耗时(3)随堂测验

1、1.下面程序的运行结果是 。 #include "stdio.h" void main( ) { int a=1,b=3,c=5,d=4; int x; if (a<b) if (c<d) x=1; else if (a<c) if (b<d) x=2; else x=3; else x=6; else x=7; printf("x=%d\n", x ); }

2、2.下面程序的运行结果是 。 #include "stdio.h" void main() { int a=4,b=5,c=6,t; if (a>=b) if (a>=c) t=a; else t=c; else if (b>=c) t=b; else t=c; printf("t=%d", t); }

任务1.7判断整点时间的合法性随堂测验

1、1.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是 。
    A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
    B、(x>=1)||(x<=10)||(x>=200)||(x<=210)
    C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
    D、(x>=1)||(x<=10)&&(x>=200)||(x<=210)

2、2.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是 。
    A、A%2==l
    B、!(A%2==0)
    C、!(A%2)
    D、A%2

zy1_4-1判断月份的合法性

1、从键盘输入一个月份month,判断月份的合法性。

zy1_5 判断时间(时分)的合法性

1、zy1_5 判断时间(时分)的合法性 从键盘上输入一个时间(包含小时和分钟),对这个时间的有效性进行判断。

第1周:第一章 简易数字时钟(上)

任务1.1显示时间(1)随堂测验

1、1.下列符号串中,不属于关键字的是 。
    A、if
    B、then
    C、static
    D、for

2、2.下列符号串中,属于C语言合法标识符的是 。
    A、else
    B、a-2
    C、_00
    D、00_

3、3.下面四个选项中,均是合法整型常量的选项是 。
    A、160 -0xffff -011
    B、0xcdf -01a -0xe
    C、-01 -986,012 0668
    D、-x48x 2e5 0x

任务1.2显示时间(2)随堂测验

1、1.设短整型变量x的值为12,假定分配给x的内存单元地址是0xff00和0xff01,则在程序中能表示变量x的地址是 。
    A、0xff00
    B、0xff01
    C、&x
    D、&12

2、2.有输入语句“scanf("a=%d,b=%d,c=%d",&a,&b,&c);”,为使变量a的值为1、b的值为3、c的值为2,从键盘输入数据的正确形式应当是 。
    A、132<回车>
    B、1,3,2<回车>
    C、a=1 b=3 C=2<回车>
    D、a=1,b=3,c=2<回车>

任务1.3计算时间间隔随堂测验

1、1.阅读以下程序,当输入数据的形式为:25,13,10<CR>,正确的输出结果为 。 #include "stdio.h" void main() { int x,y,z; scanf("%d%d%d", &x,&y,&z); printf("x+y+z=%d\n",x+y+z); }
    A、x+y+z=48
    B、x+y+z=35
    C、x+z=35
    D、不确定值

2、2.设有“int i=010,j=10;”,则“printf("%d, %d\n",++i,j--);”的输出是 。
    A、11,10
    B、9,10
    C、010,9
    D、10,9

zy1_1-1显示时间(时分秒)

1、在从键盘上输入一个时间(包含小时、分钟和秒钟)并输出。

zy1_2换算时间(时分秒---秒)

1、在从键盘上输入一个时间(包含时:分:秒)换算成秒并输出。

第3周:第一章 简易数字时钟(下)

任务1.8对多个时间求最短时长(1)随堂测验

1、1.语句while (!E);中的表达式!E等价于 。
    A、E==0
    B、E!=1
    C、E!=0
    D、E==1

2、2.设有程序段: int k=10; while (k=0) k=k-1; 则下面描述中正确的是 。
    A、while循环执行10次
    B、循环是无限循环
    C、循环体语句一次也不执行
    D、循环体语句执行一次

3、3.设有程序段: int k=10; while (k!=0) k=k-1; 则下面描述中正确的是 。
    A、while循环执行10次
    B、循环是无限循环
    C、循环体语句一次也不执行
    D、循环体语句执行一次

4、3.设有程序段: int k=10; while (k!=0) k=k+1; 则下面描述中正确的是 。
    A、while循环执行10次
    B、循环是无限循环
    C、循环体语句一次也不执行
    D、循环体语句执行一次

任务1.9对多个时间求最短时长(2)随堂测验

1、1.以下能正确计算1×2×3×…×10的程序段是 。
    A、do {i=1;s=1; s=s*i; i++;} while (i<=10);
    B、do {i=1;s=0; s=s*i; i++;} while (i<=10);
    C、i=1; s=1; do {s=s*i; i++;} while (i<=10);
    D、i=1,s=0; do {s=s*i; i++;} while (i<=10);

2、2.对于以下程序段,说法正确的是 。 x=-1; do { x=x*x; } while (!x);
    A、死循环
    B、循环执行二次
    C、循环执行一次
    D、有语法错误

zy1_6-1求最短耗时(时分格式)

1、从键盘上输入n个时间长度(包含小时和分钟),输出最短时长。

zy1_6-2求整数任意次方后的后三位数

1、试编程序,求一个整数任意次方后的最后三位数,要求x、y从键盘输入。

zy1_6-3while改do-while

1、将下面的while循环改写成do-while循环。

第4周:第二章 数值处理(上)

任务2.1求取极值和平均值(1)(实数)随堂测验

1、1.下面四个选项中,不是合法浮点数常量的选项是 。
    A、-.60
    B、12e-4
    C、1.2e-.4
    D、-e3

2、2.已有定义“float f1,f2;”和数据的输入方式“4.52 3.5<CR>”。根据定义和数据的输入方式,输入语句的正确形式为 。
    A、scanf("%f,%f", &f1,&f2);
    B、scanf("%f%f", &f1,&f2);
    C、scanf("%3.2f,%3.2f", &f1,&f2);
    D、scanf("%3.2f%3.2f", &f1,&f2);

3、3.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是 。
    A、n=(n*100+0.5)/l00.0
    B、m=n*100+0.5, n=m/100.0
    C、n=n*100+0.5/100.0
    D、n=(n/100+0.5)*100.0

任务2.2求取极值和平均值(2)(for循环)随堂测验

1、1.对for (表达式l; ;表达式3)可理解为 。
    A、for (表达式1; 0;表达式3)
    B、for (表达式1; 1;表达式3)
    C、for (表达式l;表达式1;表达式3)
    D、for (表达式1;表达式3;表达式3)

2、2.下面程序的运行结果是 。 #include <stdio.h> void main( ) { int x,i; for (i=1;i<=100;i++) { x=i; if (++x%2==0) if (++x%3==0) if (++x%7==0) printf("%d ",x); } }
    A、39 81
    B、42 84
    C、26 68
    D、28 70

3、3.以下不是无限循环的语句为 。
    A、for (y=0,x=1; x>++y;x=i++) i=x;
    B、for (; ;x++);
    C、while (1) {x++;}
    D、for (i=10; ;i--) sum+=i;

zy4统计奇数

1、2.1-1编写一个简单的C语言程序实现从键盘上输入n个数(n从键盘输入)),统计这组数的奇数个数。例如输入4个数:2,5,1,23,奇数个数为3

zy3四舍五入

1、编写程序,对从键盘输入的小数实现四舍五入保留小数点后4位。

zy5输出100内同构数

1、找出1至99之间的全部同构数,从小到大输出。老师参与 试编程序,找出1至99之间的全部同构数。

zy5-1输出SXianH数

1、请输出所有满足下面要求的三位数abc: abc等于a*a*a+b*b*b+c*c*c 例如 153=1*1*1+5*5*5+3*3*3

zy5-2输出WMei数

1、从键盘输入一个数,输出该数的所有约数。 例如6有约数:1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。

第5周 第二章 数值处理(下)

任务2.3批量数据求取极值和平均值(一维数组)随堂测验

1、1.在C语言中,一维数组的定义方式为“类型说明符 数组名 ;”。
    A、[整型常量表达式]
    B、[整型表达式]
    C、[整型常量]或[整型表达式]
    D、[整型常量]

2、2.若有说明“int a[10];”,则对a数组元素的正确引用是 。
    A、a[10]
    B、a[3.5]
    C、a(5)
    D、a[10-10]

3、3.对以下说明语句的正确理解是 。 int a[10]={6,7,8,9,l0};
    A、将5个初值依次赋给a[1]至a[5]
    B、将5个初值依次赋给a[0]至a[4]
    C、将5个初值依次赋给a[6]至a[10]
    D、因为数组长度与初值的个数不相同,所以此语句不正确

任务2.4统计及格的百分制分数(break continue)随堂测验

1、1.在C语言中,下列说法中正确的是 。
    A、不能使用“do { 语句 } while (条件);”的循环。
    B、“do { 语句 } while (条件);”的循环必须使用" break" 语句退出循环。
    C、“do { 语句 } while (条件);”的循环中,当条件为非0时将结束循环。
    D、“do { 语句 } while (条件);”的循环中,当条件为0时将结束循环。

2、2.以下叙述正确的是 。
    A、continue语句的作用是结束整个循环的执行
    B、在循环体内使用break语句或continue语句的作用相同
    C、只能在循环体内使用continue语句
    D、从多层循环嵌套中退出时,只能使用goto语句

3、3.设x和y均为int型变量,则执行下面的循环后,y的值为 。 for (y=1,x=1;y<=5;y++) { if (x>=10) break; if (x%2==1) { x+=5; continue; } x-=3; }
    A、2
    B、4
    C、6
    D、8

单元测验(一):第一章、第二章

1、下面四个选项中,均是合法的用户标识符的选项是 。
    A、aa
    B、p_0
    C、_A
    D、INT
    E、i_j
    F、float
    G、b-a
    H、-123
    I、1a0
    J、goto
    K、int
    L、do

2、下面四个选项中,均是合法整型常量的选项是 。
    A、80
    B、0xaf
    C、-01
    D、-0xff
    E、-0xe
    F、-011
    G、-x48x
    H、-01a
    I、-986,012
    J、0668

3、以下能正确地定义整型变量a、b和c,并为其赋初值5的语句是 。
    A、int a,b,c; a=5;b=5;c=5;
    B、int a=5,b=5,c=5;
    C、int a,b,c; a=b=c=5;
    D、int a,b,c=5;
    E、a=5,b=5,c=5;
    F、a=5;b=5;c=5
    G、int a=5;b=5;c=5;

4、一个C程序的执行是从 。
    A、本程序文件的main函数开始,到本程序文件的main函数结束
    B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
    C、到本程序文件的最后一个函数结束
    D、本程序文件的第一个函数开始,到本程序文件的main函数结束

5、下列说法中,正确的是 。
    A、C语言本身没有输入输出语句
    B、C语言语句以分号结尾
    C、C语言程序必须有且只有一个main()函数
    D、C程序中,main函数必须位于程序的最前面
    E、C程序的每行只能写一条语句
    F、C程序中,注释说明只能位于一条语句的后面
    G、C语言的main()函数不能为空

6、下面选项是C语言基本数据类型的是 。
    A、整型
    B、实型
    C、字符型
    D、枚举型
    E、字符串
    F、指针
    G、结构体

7、有输入语句“scanf("a:%d,b:%d,c:%d",&a,&b,&c);”,为使变量a的值为1、b的值为3、c的值为2,从键盘输入数据的正确形式应当是 。
    A、a:1,b:3,c:2<回车>
    B、132<回车>
    C、1,3,2<回车>
    D、a:1 b:3 C:2<回车>
    E、1<回车>2<回车>3<回车>
    F、a:1<回车>b:3<回车>c:2<回车>

8、阅读以下程序,当输入数据的形式为:1,2,3<CR>,正确的输出结果为 。 #include "stdio.h" void main() { int x,y,z; scanf("%d%d%d", &x,&y,&z); printf("%d+y+z=%d\n",x,x+y+z); }
    A、1+y+z=6
    B、x+y+z=6
    C、x+y+z=1
    D、不确定值
    E、1+y+z= 6

9、设有“int i=010,j=10;”,则“printf("%d, %d\n",i++,--j);”的输出是 。
    A、8,9
    B、11,10
    C、9,10
    D、10,9
    E、010,9

10、若以下变量均是整型,且num=7;sum=7;则计算表达式“sum=num++;sum++;++num;”后,printf(“%d”, sum)的结果为 。
    A、7
    B、8
    C、9
    D、10

11、能正确表示“当x的取值在[1,15)和(300,330]范围内为真,否则为假”的表达式是 。
    A、(x>=1)&&(x<15)&&(x>300)&&(x<=330)
    B、(x>=1)&&(x<15)||(x>300)&&(x<=330)
    C、!((x<1)||((x>=15)&&(x<=300))||(x>330))
    D、(x>=1)&&(x<15)&&(x>300)&&(x<=330)
    E、(x>=1)||(x<15)||(x>300)||(x<=330)
    F、(x>=1)||(x<15)&&(x>300)||(x<=330)
    G、!((x<1)||(x>=15)||(x<=300)||(x>330))
    H、!((x<=1)||((x>15)&&(x<300))||(x>=330))

12、以下程序的输出结果是 。 #include "stdio.h" void main( ) { int x=-2,y=-1,z=2; if (x<y) if (y<0) z=0; else z+=1; printf("%d\n",z); }
    A、1
    B、2
    C、3
    D、0

13、以下程序的输出结果是 。 #include "stdio.h" void main( ) { int x=16,y=10,z=2; if (x>y) if (y<0) z=0; else z+=1; printf("%d\n",z); }
    A、1
    B、2
    C、3
    D、0

14、逻辑运算符两侧运算对象的数据类型是 。
    A、只能是0或1
    B、可以是任何类型的数据
    C、只能是0或非0整数
    D、只能是整型或字符型数据

15、下面程序段的运行结果是 。 #include "stdio.h" void main( ) { int a=1, b=2,c=2,t; while (a<b<c) {t=a;a=b;b=t;c--;} printf("%d,%d,%d",a,b,c); }
    A、2,1,0
    B、1,2,1
    C、1,2,0
    D、2,1,1
    E、1,1,1

16、下面程序的运行结果是 。 #include <stdio.h> void main( ) { int num=0; while (num<=2) { num++; printf("%d\n", num); } }
    A、1
    B、1 2
    C、1 2 3
    D、1 2 3 4
    E、0
    F、0 1
    G、0 1 2
    H、0 1 2 3

17、以下能正确计算1+2+3+…+10的程序段是 。
    A、i=1; s=1; do {s=s+i; i++;} while (i<10);
    B、do {i=1;s=0; s=s+i; i++;} while (i<=10);
    C、do {i=1;s=1; s=s+i; i++;} while (i<=10);
    D、i=1,s=0; do {s=s+i; i++;} while (i<=10);
    E、i=1; s=1; do {s=s+i; i++;} while (i<=10);
    F、i=1,s=0; do {s=s+i; i++;} while (i<10);

18、已知:int t=0; while (t=1) {...},则以下叙述正确的是 。
    A、循环表达式不合法
    B、循环表达式的值为0
    C、循环表达式的值为1
    D、以上说法都不对

19、以下程序的运行结果是 。 void main() { int x=2,y=2; if (x<0) y=0; else if (x<100) y=10/x; else y=1; printf("%d\n",y); }
    A、1
    B、0
    C、5
    D、2

20、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定else子句总是与 配对。
    A、缩排位置相同的if
    B、其之前最近的未于其它else匹配过的if
    C、其之后最近的if
    D、同一行上的if

21、以下不正确的语句为 。
    A、if (x>y);
    B、if (x!=y) scanf("%d",&x);else scanf("%d",&y);
    C、if (x<y) {x++;y++;}
    D、if (x=y)&&(x!=0) x+=y;
    E、If(x<y) {x++;y++;}
    F、if(1) {x++;}

22、循环语句“for (x=0,y=0; (y!=123)||(x<4);x++); ”中循环执行了 。
    A、不确定次
    B、无限次
    C、4 次
    D、3 次

23、若变量已正确定义,以下程序段的输出结果是 。 i=0; do { printf("%d,",i); } while (i++); printf("%d\n",i);
    A、0,0
    B、0,1
    C、1,1
    D、程序进入无限循环

24、设有程序段: int k=10; while (k=0) k=k-1; 则下面描述中正确的是 。
    A、循环是无限循环
    B、循环体语句执行一次
    C、while循环执行10次
    D、循环体语句一次也不执行

25、以下程序的运行结果是 。 #include "stdio.h" void main( ) { int m=5; if (m++>5) printf("%d\n",m); else printf("%d\n",m+1); }
    A、4
    B、5
    C、6
    D、7

26、以下程序的运行结果是 。 #include "stdio.h" void main( ) { int m=5; if (++m>5) printf("%d\n",m); else printf("%d\n",m+1); }
    A、4
    B、5
    C、6
    D、7

27、以下程序的运行结果是 。 #include "stdio.h" void main( ) { int k=5; if (k--<5) printf("%d\n",k); else printf("%d\n",k+1); }
    A、4
    B、5
    C、6
    D、7

28、下面四个选项中,不是合法浮点数常量的选项是 。
    A、-.60
    B、12e-4
    C、-8e5
    D、-e3
    E、+2e-1
    F、+2e-4
    G、5e-9.4
    H、.8e-.4
    I、45e

29、以下说法正确的是 。
    A、输入项可以为一个实型常量,如scanf("%f",3.5);
    B、当输入数据时,必须指明变量的地址,如scanf("%f",&f);
    C、当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);
    D、只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");

30、若x、y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是 。
    A、scanf("%d%x,%le",&x,&y,&z);
    B、scanf("%x%o%6.2f",&x,&y,&z);
    C、scanf("%2d *%d%lf",&x,&y,&z);
    D、scanf(" %x%*d%o",&x,&y);

31、已有定义“int x;float y;”,且执行“scanf("%3d%f",&x,&y);”语句时,从第一列开始输入数据:12345 678<回车>,则x和y的值分别为 。
    A、123 45.0
    B、12345 678
    C、345 678
    D、不确定

32、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是 。
    A、7
    B、8
    C、6
    D、2

33、设a=3,b=4,执行“printf("%d,%d",(a,b),(b,a));”后的输出是 。
    A、3,4
    B、3,3
    C、4,3
    D、4,4

34、下列表达式中,不属于逗号表达式的是 。
    A、a=(b, c)
    B、a, b=c
    C、a,(b=c)
    D、a=b, c

35、若有代数式3ae/(bc),则不正确的C语言表达式是 。
    A、a/b/c*e*3
    B、3*a*e/b/c
    C、3*a*e/b*c
    D、a*e/c/b*3

36、以下不正确的叙述是 。
    A、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
    B、在C程序中,APH和aph是两个不同的变量
    C、在C程序中,逗号运算符的优先级最低
    D、若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变

37、若有定义“int a=7; float x=2.5,y=4.7;”,则表达式“x+a%3*(int)(x+y)%2/4”的值为 。
    A、2.5
    B、2.75
    C、3.5
    D、0.0

38、设以下变量均为int类型,则值不等于7的表达式是 。
    A、(x=y=6,x+y,x+1)
    B、(x=y=6,x+y,y+1)
    C、(x=6,x+1,y=6,x+y)
    D、(y=6,y+1,x=y,x+1)

39、下面有关for循环的正确描述是 。
    A、for循环只能用于循环次数已经确定的情况
    B、for循环是先执行循环体语句,后判断表达式
    C、在for循环中,不能用break语句跳出循环体
    D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

40、以下不是无限循环的语句为 。
    A、for (y=0,x=1; x>++y;x=i++) i=x;
    B、for (; ;x++);
    C、while (1) {x++;}
    D、for (i=10; ;i--) sum+=i;

41、下面程序段的运行结果是 。 for (y=1; y<10;) y=((x=3*y,x+1), x-1); printf("x=%d,y=%d",x,y);
    A、x=15,y=14
    B、x=12,y=13
    C、x=27,y=27
    D、x=y=27

42、下面程序的运行结果是 。 #include <stdio.h> void main() { int i,s=1; for (i=1;i<50;i++) if (!(i%5)&&!(i%3)) s+=i; printf("%d\n",s); }
    A、409
    B、277
    C、91
    D、1

43、下列程序的输出结果是 。 #include "stdio.h" void main() { int i,a=0,b=0; for (i=1;i<10;i++) { if (i%2==0) { a++; continue; } b++; } printf("a=%d,b=%d",a,b); }
    A、a=4,b=4
    B、a=4,b=5
    C、a=5,b=4
    D、a=5,b=5

44、设x和y均为int型变量,则执行下面的循环后,y的值为 。 for (y=1,x=1;y<=5;y++) { if (x>=10) break; if (x%2==1) { x+=5; continue; } x-=3; }
    A、2
    B、4
    C、6
    D、8

45、若运行以下程序时,从键盘输入3.6 2.4<CR>(<CR>表示回车),则下面程序的运行结果是 。 #include <stdio.h> #include <math.h> void main( ) { float x,y,z; scanf("%f%f",&x,&y); z=x/y; while (1) { if (fabs(z)>1.0) /*fabs(z)对z取绝对值*/ { x=y; y=z; z=x/y; } else break; } printf("%f\n",y); }
    A、1 .500000
    B、1.600000
    C、2.000000
    D、2.400000

46、以下对一维整型数组a的正确说明是 。
    A、int a[0…10];
    B、int n=10,a[n];
    C、int n; scanf("%d",&n); int a[n];
    D、#define SIZE 10 int a[SIZE];

47、在C语言中,引用数组元素时,其数组下标的数据类型允许是 。
    A、整型常量
    B、整型表达式
    C、整型常量或整型表达式
    D、任何类型的表达式

48、下列程序的输出结果是 。 #include "stdio.h" void main( ) { int a[]={1,2,3,4,5}, i; for (i=1;i<5;i++) printf("%1d",a[i]-a[i-1]); }
    A、11111
    B、1111
    C、111
    D、222
    E、2222

49、下面程序的运行结果是 。 #include "stdio.h" void main( ) { int a[6],i; for ( i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%2d",a[i]); } }
    A、-4 0 4 0 3
    B、-4 0 4 4 3
    C、-4 0 4 0 4
    D、-4 0 4 4 0

50、下面程序的输出结果为 。 #include "stdio.h" void main() { int k[30]={12,324,45,6,768,98,21,34,453,456}; int count=0,i=0; while (k[i]) { if (k[i]%2==0||k[i]%5==0) count++; i++; } printf("%d,%d\n",count,i); }
    A、7,8
    B、8,8
    C、7,10
    D、8,10

51、设整型变量x1和x2的值均为10,则表达式“x1/=x2-4”的值是__________。

52、设有整型变量x,如果表达式“!x”值为0,则x的值为______;

53、如果表达式“!x”的值为1,则x的值为______。

54、当a=3,b=2,c=1时,表达式“f=a>b>c”的值是________。

55、x、y、z为整型,且x=3,y=-4,z=5,则表达式“(x&&y)==(x||z)”的值为______。

56、结构化程序设计规定的三种基本结构是 顺序 结构、 选择 结构和 结构。

57、在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是 选择结构。

58、在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是 循环结构。

59、设i、j、k均为int型变量,则执行完下面的for循环后,k的值为 。 for (i=0,j=10;i<=j;i++,j--) k=i+j;

60、执行下列程序段,其中的do~while循环一共执行 次。 int x=0; do { x+=x*x; } while (x);

61、设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值是多少?

62、设有定义“int a=1,b=2,c=3,d=4,m=2,n=2;”,则执行“(m=a>b)&&(n=c>d)”后,n的值为多少?

63、设x、y、z、t均为int型变量,则执行以下语句后,输出结果什么? x=y=z=1; t=++x||++y&&++z; printf(" %d,%d,%d,%d\n",t,x,y,z);

64、若有“int x,y,z; x=1;y=2;z=9;”,则表达式“1.0+x/y”的值为__。

65、若有“int x,y,z; x=1;y=2;z=9;”,执行表达式“z%=x*2+y”后,z的值为__________。

66、若有“int x,y,z,k;”,执行表达式“x=(y=4,z=16,k=32)”后,x的值为______。

67、C语言的数组名是一个地址 ,不能对它进行加、减和赋值运算。

68、设有下列数据定义语句,则数组元素x[i]的值是 。 int i=3, x[4]={1,2,3};

zy6正序逆序输出一组数值

1、一直一个长度为5的数组,里面依次存放了3,6,9,12,15,请先按正序输出一遍,再按逆序输出一遍。(每个数字单独占一行)

zy7数值加密

1、从键盘输入一个整数,对其加密后输出。

第6周 第三章 模拟滚屏输出(上)

任务3.1字母的输入输出及转换(字符型)随堂测验

1、1.设a、b为字符型变量,执行“scanf("a=%c,b=%c", &a,&b);”后使a为'A',b为'B',从键盘上的正确输入是 。
    A、‘A'‘B’
    B、‘A',‘B’
    C、A=A,B=B
    D、a=A,b=B

2、2.下列符号中,不属于转义字符的是 。
    A、\\
    B、\x00
    C、\00
    D、\09

3、3.已知ch是字符型变量,下面不正确的赋值语句是 。
    A、ch='a+b';
    B、ch='\0';
    C、ch='7'+'9';
    D、ch=5+9;

4、4.若有说明语句“char c='\72';”,则变量c 。
    A、包含1个字符
    B、包含2个字符
    C、包含3个字符
    D、说明不合法,c的值不确定

5、5.下列程序运行时如果输入的是C(已知字母A的ASCII码为十进制数65),则该程序的输出是_______。 #include <stdio.h> void main() { char c1,c2; c1=getchar(); c2=c1+32; printf("%c,%d\n",c2,c2); }

任务3.2 将百分制分数换算为等级成绩(字符型)随堂测验

1、1.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为 。
    A、D
    B、68
    C、不确定的值
    D、C

2、3.不能判断字符变量ch中存放的是大写字母的条件表达式是_______。
    A、ch>='A'&& ch<='z'
    B、ch>=65&& ch<=90
    C、ch>=65&& ch<='A'+25
    D、ch>='A'&& ch<='A'+26

3、2.设字符型变量ch中存放字符'A',则执行“ch+++2;”后,ch中的字符是________。

任务3.3 将等级成绩换算为百分制分数(switch case)随堂测验

1、1.若有定义:“float x=1.5; int a=1,b=3,c=2;”,则正确的switch语句是 。
    A、switch (x) {case 1.0:printf("*n"); case 2.0:printf("**n");}
    B、switch ((int)x) ; {case 1:printf("*n"); case 2:printf("**n");}
    C、switch (a+b) {case1:printf(**n); case c:printf(**n);}
    D、switch (a+b) {case 1:printf("*n"); case 2+1:printf("**n");}

2、2.以下程序的输出结果是 。 #include <stdio.h> 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

zy7-1大小写转换

1、从键盘输入一个字母,大小写转换后输出。

zy7-2字母加密

1、加密算法:从键盘上输入一个大写字母,对其加密。 例如A加密后得到B;F加密后得到G;Z加密后得到A; 输入其他字符提示“出错”。 例如输入7,输出“出错”。

第7周 第三章 模拟滚屏输出(中)

任务3.4 模拟单个字符的移动输出(函数、双层循环)随堂测验

1、1.以下对C语言的描述中正确的是 。
    A、C语言源程序中可以有重名的函数
    B、C语言源程序中要求每行只能书写一条语句
    C、注释可以出现在C语言源程序中的任何位置
    D、最小的C语言源程序中没有任何内容

2、2.在一个C程序中 。
    A、main函数必须出现在所有函数之前
    B、main函数必须出现在固定位置
    C、main函数必须出现在所有函数之后
    D、main函数可以在任何地方出现

3、3.以下正确的函数定义的首部形式是 。
    A、double fun(int x,int y)
    B、double fun( x,y)
    C、double fun(int x,int y);
    D、double fun(int x,y);

4、4.若程序中定义了以下函数,并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是 。 double myadd(double a,double b) { return (a+b); }
    A、double myadd(double b,double a);
    B、double myadd(double,double);
    C、double myadd(double a, b);
    D、double myadd(double x,double y);

5、5.有以下函数定义: void fun(int n, double x) {……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是 。
    A、fun(int y, double m);
    B、k=fun(10,12.5);
    C、fun(x,n);
    D、void fun(n,x);

任务3.5 按指定格式输出手机号码(字符型数组)随堂测验

1、1.下列选项中错误的说明语句是 。
    A、char a[]={'t','o','y','o','u',''};
    B、char a[]={"toyou"};
    C、char a[]="toyou\0";
    D、char a[]='toyou\0'

2、2.以下不正确的定义语句是 。
    A、double x[5]={2.0,4.0,6.0,8.0,10.0};
    B、char cl[]={'1', '2', '3', '4', '5'};
    C、int y[5]={0,1,3,5,7,9};
    D、char c2[]={'x10', 'xa', 'x8'};

3、3.字符串“ab\n\\012\\\"”的长度是 。

4、4.字符串“\\012\012”在内存中占用的字节数是________。

5、5.字符串“\\012\012”的长度是_____。

任务3.6 手机号码的整体性输入及输出(字符串)随堂测验

1、1.定义一个名为s的字符型数组,并且赋值为字符串"123"的错误语句是 。
    A、char s[]={ '1', '2', '3', '\0'};
    B、char s[]={ "123"};
    C、char s[3]={ '1', '2', '3'};
    D、char s[4]={ '1', '2', '3'};

2、2.对两个数组a和b进行如下初始化: char a[]="ABCDEF"; char b[]={'A', 'B', 'C', 'D', 'E', 'F'}; 则以下叙述正确的是 。
    A、a与b数组完全相同
    B、a与b长度相同
    C、a和b中都存放字符串
    D、a数组比b数组长度长

3、3.有两个字符数组a、b,则以下正确的输入语句是 。
    A、gets(a,b);
    B、scanf("%s%s",a,b);
    C、scanf("%s%s",&a,&b);
    D、gets("a"),gets("b");

4、4.有字符数组a[80]和b[80],则正确的输出语句是 。
    A、puts(a,b);
    B、printf("%s,%s",a[],b[]);
    C、putchar(a,b);
    D、puts(a),puts(b);

5、5.下面程序的运行结果是 。 #include <stdio.h> void main( ) { char ch[7]={ "12ab56"}; int i,s=0; for ( i=0;ch[i]>='0'&&ch[i]<='9';i+=2) s=10*s+ch[i] - '0'; printf("%d\n",s); }
    A、1
    B、1256
    C、12ab56
    D、1<CR>2<CR>5<CR>6<CR>

zy8百分制转等级制分数

1、将百分制分数换算成等级制分数。

zy9-1月份判断(函数)1

1、从键盘输入一个月份month,判断月份的合法性。要求用自定义函数: void panduan(int m) { } 完成对月份的合法性判断。

zy10求满足条件的三位数(函数)

1、编程实现求满足如下要求的三位数,该三位数等于其每位数字的阶乘之和。即:abc=a!+b!+c!。

zy9-2月份判断(函数)2

1、从键盘输入一个月份month,判断它的合法性。 要求用自定义函数: int panduan(int m) { } 完成对月份的合法性判断。

第9周 第四章 二维数组(上)

任务4.1 模拟字模打印数字5(二维数组)随堂测验

1、1.若有定义“int a[2][3];”,以下选项中对a数组元素正确引用的是 。
    A、a[2][!1]
    B、a[2][3]
    C、a[0][3]
    D、a[1>2][!1]

2、2.以下不能对二维数组a进行正确初始化的语句是 。
    A、int a[2][3]=;
    B、int a[][3]={{1,2},};
    C、int a[2][3]={{1,2},{3,4},{5,6}};
    D、int a[][3]={1,2,3,4,5,6};

3、3.定义了一个二维数组 float a[3][4],数组元素a[2][1],是第 个元素。

任务4.2 模拟字模打印(二维数组)随堂测验

1、1.若有说明“int a[3][4]=;”,则下面正确的叙述是 。
    A、只有元素a[0][0]可得到初值
    B、此说明语句不正确
    C、数组a中各元素都可得到初值,但其值不一定为0
    D、数组a中每个元素均可得到初值0

2、3.若有说明“int a[][4]={0,0};”,则下面不正确的叙述是 。
    A、数组a的每个元素都可得到初值
    B、二维数组a的第一维大小为1
    C、因二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
    D、只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

3、2.定义了数组int a[5][6],它的最后一个数组元素是 。

4、4. 已知: float x=3.6; int i; i=(int)x; 则变量i的值是 。

作业任务4.1

1、4.1编写一个简单的C语言程序,实现从键盘上模拟字模打印数字7。要求模拟字模输出时,有输出的位置显示为“*”。

zy 19

1、4.1编写一个简单的C语言程序,实现从键盘上模拟字模打印数字7。要求模拟字模输出时,有输出的位置显示为“#”。

zy20

1、输入一个字符,使对应的8*8矩阵的主对角线上显示这个字符,其余显示0

第8周 第三章 模拟滚屏输出(下)

任务3.7 判断输入的字符串是否为手机号码(字符串处理库函数)随堂测验

1、1.有下面的程序段: #include "stdio.h" void main( ) { char a[3],b[]="China"; a=b; printf("%s",a); } 则下面叙述中正确的是 。
    A、运行后将输出China
    B、运行后将输出Ch
    C、运行后将输出Chi
    D、编译出错

2、2.判断字符串a和b是否相等,应当使用 。
    A、if (a==b)
    B、if (a=b)
    C、if (strcpy(a,b))
    D、if (strcmp(a,b))

3、3.下面程序运行后的输出结果为 。 #include <stdio.h> #include <string.h> void main() { char q[10]={ 'A','B','C' }; printf("%d\n", strlen(q)); }
    A、不确定
    B、10
    C、9
    D、3

4、4.下面程序的运行结果是 。 #include <stdio.h> #include <string.h> void main( ) { char a[80]="WE", b[80]="COME"; int i=0; strcat(a,b); while (a[i++]!='\0') b[i]=a[i]; puts(b); }
    A、CO
    B、WECOME
    C、CE
    D、CECOME

任务3.8 手机号码的滚屏输出(函数)随堂测验

1、1.以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择 。 #include<stdio.h> #include<math.h> float f(float,float); void main( ) { float x,y,z,sum; scanf("%f%f%f",&x,&y,&z); sum=f(x+y, x-y)+f( ); printf("sum=%f\n",sum); } float f(float a,float b) { float value; value=a/b; return(value); }
    A、x-y, x+y
    B、x+y, x-y
    C、z+y, z-y
    D、z-y, z+y

2、2.在程序中需要调用库函数strlen时必须包含头文件 。

zy11 WhatYourName

1、请告诉我你的姓名?并输出。

zy12基本信息录入

1、从键盘输入你的学号、姓名、年龄、身高,并输出。

zy13输出字符串中数字字符

1、输入长度在10以内的字符串,输出其中的数字字符。

zy14加法表达式求解

1、从键盘输入长度不大于10的加法式子(例如1+11+123=),输出结果135。

第10周 第四章 二维数组(下)

任务4.3 用字模实现倒计时(二维数组)随堂测验

1、1.下面程序段的输出结果是 。 int i; int 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

2、2.下面程序段的输出结果为 。 int i,j,x=0; static int a[6][6]; for (i=0;i<3;i++) for (j=0;j<3;j++) a[i][j]=2*i+j; j=1; for (i=0;i<6;i++) x+=a[i][j]; printf("%d",x);
    A、0
    B、12
    C、9
    D、不确定值

3、3.已知函数说明 void func(int data[4],int n);和数组int a[4]={1,2,3,4};请补全函数调用func(______ , 4);

单元测验(二):第三章、第四章

1、1.下面四个选项中,是合法转义字符的选项是 。
    A、'\''
    B、'\1011'
    C、'\018'
    D、'\\0'
    E、'\f '
    F、'\xf'

2、下面四个选项中,不是合法转义字符的选项是 。
    A、'\xabc'
    B、'\”'
    C、'\x1f'
    D、'\017'
    E、'\101'
    F、'\f '

3、已知ch是字符型变量,下面不正确的赋值语句是 。
    A、ch='7+9';
    B、ch='\0';
    C、ch='a'+'b';
    D、ch=5+9;

4、若有说明语句“char c='\xac';”,则变量c 。
    A、包含1个字符
    B、包含2个字符
    C、包含3个字符
    D、说明不合法,c的值不确定

5、下列说法中,正确的是 。
    A、C程序中,main函数必须位于程序的最前面
    B、C程序的每行只能写一条语句
    C、C语言本身没有输入输出语句
    D、C程序中,注释说明只能位于一条语句的后面
    E、C程序的执行是从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
    F、C程序的执行是从到本程序文件的最后一个函数结束
    G、C程序的执行是从本程序文件的第一个函数开始,到本程序文件的main函数结束
    H、C程序的执行是从本程序文件的main函数开始,到本程序文件的main函数结束

6、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'8'-'4'后,c2中的值为 。
    A、E
    B、D
    C、69
    D、不确定的值

7、若运行以下程序时,从键盘输入ADescri;tor<CR>(<CR>表示回车),则程序的运行结果是 。 #include<stdio.h> void main( ) { char c; int v0=0,v1=0,v2=0; do { switch (c=getchar()) { case 'a': case 'A': case 'e': case 'E': case 'i': case 'I': case 'o': case 'O': case 'u': case'(': v1+=1; default : v0+=1; v2+=1; } } while (c!='\n'); printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2); }
    A、v0=7,v1=4,v2=7
    B、v0=8,v1=4,v2=8
    C、v0=11,v1=4,v2=11
    D、v0=12,v1=4,v2=12

8、若程序执行时的输入数据是“2473”,则下述程序的输出结果是 。 #include <stdio.h> void main() { int cs; while ((cs=getchar())!='\n') { switch(cs-'2') { case 0: case 1: putchar(cs+4); case 2: putchar(cs+4); break; case 3: putchar(cs+3); default: putchar(cs+2); } } }
    A、668977
    B、668966
    C、6677877
    D、6688766

9、下面程序的运行结果是 。 #include<stdio.h> void main( ) { int k=0;char c='A'; do { switch (c++) { case 'A' :k++;break; case 'B': k--; case 'C': k+=2;break; case 'D': k=k%2;continue; case 'E': k=k*10;break; default: k=k/3; } k++; } while (c<'G'); printf("k=%d\n",k); }
    A、k=3
    B、k=4
    C、k=2
    D、k=0

10、以下程序的运行结果是 。 #include <stdio.h> void main( ) { int i,j; for (i=0; i<1; i+=1) for ( j=2; j>0; j--) printf ("*"); }
    A、**
    B、***
    C、****
    D、中国大学mooc作业答案



11、以下正确的说法是 。
    A、用户若需调用标准库函数,调用前必须重新定义。
    B、用户可以重新定义标准库函数。若如此,该函数将失去原有含义。
    C、系统根本不允许用户重新定义标准库函数。
    D、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调用。
    E、函数的定义可以嵌套,但函数的调用不可以嵌套
    F、函数的定义不可以嵌套,但函数的调用可以嵌套
    G、函数的定义和函数的调用均不可以嵌套
    H、函数的定义和函数的调用均可以嵌套

12、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 。
    A、单向值传递
    B、由用户指定传递方式
    C、地址传递
    D、由实参传给形参,再由形参传回给实参

13、在C语言中,以下正确的说法是 。
    A、形参是虚拟的,不占用存储单元
    B、实参和与其对应的形参共占用一个存储单元
    C、只有当实参和与其对应的形参同名时才共占用存储单元
    D、函数的形参和实参分别占用不同的存储单元

14、C语言规定,以下不正确的说法是 。
    A、实参可以是常量、变量或表达式
    B、形参可以是常量、变量或表达式
    C、形参应与其对应的实参类型一致
    D、定义函数时,形参的类型说明可以放在函数体内
    E、return 后边的值不能为表达式
    F、如果函数值的类型与返回值类型不一致,以函数值类型为准
    G、如果形参与实参的类型不一致,以实参类型为准

15、若调用一个函数,且此函数中没有return语句,则该函数 。
    A、返回一个不确定的值
    B、能返回一个用户所希望的函数值
    C、返回若干个系统默认值
    D、没有返回值

16、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 。
    A、float型
    B、int型
    C、long型
    D、double型

17、下列程序的输出结果是 。 #include "stdio.h" void main( ) { int a[]={2,4,6,8,10}, i; for (i=1;i<5;i++) printf("%d",a[i]-a[i-1]); }
    A、11111
    B、2222
    C、111
    D、222

18、18. 下面程序的运行结果是 。 #include "stdio.h" void main( ) { int a[6],i; for ( i=1;i<6;i++) { a[i]=9*(i-2+3*(i>3))%4; printf("%2d",a[i]); } }
    A、-1 0 1 1 2
    B、-1 0 1 0 2
    C、-1 0 1 1 3
    D、-1 0 1 1 0

19、下面程序的输出结果为 。 #include "stdio.h" void main() { int k[30]={120,24,415,16,769,48,22,14,432,156}; int count=0,i=0; while (k[i]) { if (k[i]%2==0||k[i]%5==0) count++; i++; } printf("%d,%d\n",count,i); }
    A、8,9
    B、9,9
    C、7,10
    D、9,10

20、下面程序段的运行结果是 。 #include "stdio.h" #include "string.h" void main( ) { char a[7]="abedef"; char b[4]="ABC"; strcpy(a,b); printf("%c",a[5]); }
    A、b
    B、\0
    C、e
    D、f

21、有下面的程序段: #include "stdio.h" void main( ) { char a[3],b[]="Hello"; a=b; printf("%s",a); } 则下面叙述中正确的是 。
    A、运行后将输出Hello
    B、运行后将输出He
    C、运行后将输出Hel
    D、编译出错

22、22.下面程序运行后的输出结果为 。 #include "stdio.h" #include "string.h" void main( ) { char s[ ]="\n123\\"; printf("%d,%d\n",strlen(s),sizeof(s) ); }
    A、A.赋初值的字符串有错 B.6,7 C.5,6 D.6,6
    B、6,7
    C、5,6
    D、6,6

23、以下程序的输出结果是 。 void main() { int x=0,y=1,a=1,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

24、有以下函数定义: void fun(int n,char x) {……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是 。
    A、fun(int y, char m);
    B、k=fun(10, 'A');
    C、fun(x, A);
    D、void fun(n,x);

25、下列选项中错误的说明语句是 。
    A、char a[]={'h','e','l','l','o',''};
    B、char a[]={"hello"};
    C、char a[]="hello\0";
    D、char a[]=' hello\0';

26、对两个数组a和b进行如下初始化: char a[]="china"; char b[]={'c', 'h', 'i', 'n', 'a'}; 则以下叙述正确的是 。
    A、a与b数组完全相同
    B、a与b长度相同
    C、a和b中都存放字符串
    D、a数组比b数组长度长

27、有两个字符数组s1、s2,则以下正确的输入语句是 。
    A、gets(s1,s2);
    B、scanf("%s%s", s1,s2);
    C、scanf("%s%s",&s1,&s2);
    D、gets("s1"),gets("s2");

28、有字符数组s1[80]和s2[80],则正确的输出语句是 。
    A、puts(s1,s2);
    B、printf("%s,%s",s1[],s2[]);
    C、putchar(s1,s2);
    D、puts(s1),puts(s2);

29、下面程序的运行结果是 。 #include <stdio.h> void main( ) { char ch[11]={ "12ab56d482"}; int i,s=0; for ( i=0;ch[i]>='0'&&ch[i]<='9';i+=4) s=10*s+ch[i] - '0'; printf("%d\n",s); }
    A、158
    B、1256
    C、12ab56 d482
    D、1<CR>5<CR>8<CR>

30、判断字符串a和b是否相等,应当使用 。
    A、if (a==b)
    B、if (a=b)
    C、if (strcpy(a,b))
    D、if (strcmp(a,b))

31、下面程序的运行结果是 。 #include <stdio.h> #include <string.h> void main( ) { char a[80]="WE", b[80]="COME"; int i=0; strcat(a,b); while (a[i]!='\0') { b[i]=a[i]; i++; } puts(b); }
    A、CO
    B、WECOME
    C、WOCEM
    D、CECOME

32、下面程序段的输出结果是 。 int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; for (i=0; i<3; i++) printf("%d " ,x[i][(2+i)%2]);
    A、1 5 7
    B、1 4 7
    C、3 5 7
    D、3 6 9

33、下面程序段的输出结果是 。 #include <stdio.h> #include <string.h> void main( ) { int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; for (i=0; i<3; i++) printf("%d " ,x[i][2-i]+x[2-i][i]); }
    A、8 9 10
    B、9 10 9
    C、10 9 10
    D、10 10 10

34、字符串“ab\t\\042\\\'”的长度是 。

35、字符串“\\012\01”在内存中占用的字节数是______。

36、字符串“\\015\06”的长度是____

37、执行输入语句“scanf ("x=%c, y=%d", &x, &y);”,要使字符型变量x的值为'A'、整型变量y的值为12,则从键盘上正确的输入是__________。

38、用下面的scanf函数输入数据,要使得a=10,b=20,c1='A',c2='a',x=1.5,y=-3.75,z=67.8,请问在键盘上应如何输入数据? scanf("%d,b=%d,c1:%c c2:%c,%f,y=%f,z:%f",&a,&b,&c1,&c2,&x,&y,&z);

39、若有定义“double x[3][5];”,则x数组中行下标的下限为 。

40、若有定义“double x[3][5];”,则x数组中列下标的上限为 。

41、若有定义“int a[3][4]={{1,2},,{4,6,8,10}};”,则a[1][2]得到的初值是 。

42、若有定义“int a[3][4]={{1,2},,{4,6,8,10}};”,则a[2][1]得到的初值是 。

43、C源程序的基本单位是 。

44、C源程序中有且仅有一个 。

45、C语言规定,C语言可执行程序的开始执行点是 。

46、在C语言中,一个函数一般由两个部分组成,它们是函数首部和 。

47、有如下函数定义: void swap(int x,int y) { int temp; temp=x; x=y; y=temp; } 在运行如下语句后, a=1;b=2; swap(a,b); a的值为 。

48、下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0,请为程序填空。 #include "stdio.h" void main( ) { int i,x,y=1; scanf("%d",&x); for (i=2;i<=x/2;i++) if ( ) { y=0;break;} printf("%d\n",y); }

49、下列程序是输入一个小写字母,转换成对应大写字母的后一个字母输出。例如:'a'将转换成'B'、…、'y'将转换成'Z',其中的'z'将转换成'A'。请填写程序中所缺少语句: #include<stdio.h> void main( ) { char ch; scanf("%c", &ch); ch=ch-32+1; printf("%c\n", ch); }

50、以下程序的功能是根据输入在屏幕上分别显示出“YES.”与“No.”。请填空。 #include<stdio.h> void YesNo(char ch) { switch (ch) { case 'y': case 'Y':printf("\n YES.\n"); ; case 'n': case 'N' :printf("\n No.\n"); } } void main( ) { char ch; printf("\nEnter a char 'y', 'Y', 'n', 'N': "); ch=getchar(); printf("ch : %c",ch); YesNo(ch); }

51、以下isprime函数的功能是判断形参a是否为素数。如a是素数,函数返回1,否则返回0。请填空: int isprime(int a) { int i; for (i=2;i<=a/2;i++) if (a%i==0) return 1; }

52、以下程序的运行结果是 。 #include "stdio.h" void f(int v, int w) { int t; t=v; v=w; w=t; } void main ( ) { int x=1,y=3,z=2; if (x>y) f (x,y); else if (y>z) f (y,z); else f (x,z); printf("%d,%d,%d\n",x,y,z); }

53、函数fun的功能是:求出以下分数序列的前n项之和,和值通过函数值返回。例如,n=10,则输出16.479905。 #include <stdio.h> double fun(int n) { int a,b,c,k; double s; [29] ; a=2; b=1; for (k=1; k<=n;k++) { s=s+(double)a/b; c=a; ; b=c; } return s; } void main( ) { int n=10; printf("\nThe value of function is: %lf\n",fun(n)); }

zy22 两行输出4个字模

1、分两行横向排版输出yes!

第11周 第五章 模拟计时器(上)

任务5.1简易秒表计时随堂测验

1、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。 #include<stdio.h> #include<math.h> float f(float,float); void main( ) { float x,y,z,sum; scanf("%f%f%f",&x,&y,&z); sum=f( 【1】 )+f( 【2】 ); printf("sum=%f\n",sum); } float f(float a,float b) { float value; value=a/b; return(value); } A.x-y, x+y B.x+y, x-y C.z+y, z-y D.z-y, z+y 注:如果你仍然为【1】选A,【2】选B,请直接填写:AB

2、下面的程序运行时,若输入253,则输出 。 #include <stdio.h> long fun (long data) { long k =1; do { k*=data%10 ; data/=10 ; } while(data) ; return (k); } void main( ) { long x; printf("\nPlease enter a number:"); scanf("%ld",&x); printf("\n%ld\n",fun(x)); }

任务5.2复杂秒表计时随堂测验

1、编写函数max,求整型a、b的较大数。然后编写main函数,通过调用max函数求三个整数的最大数。

第12周 第五章 模拟计时器(下)

任务5.3简易倒计时器随堂测验

1、1.对于文件包含处理,在编译时 。
    A、把用#include 命令指定的文件与本文件用link命令进行联接
    B、把用#include 命令指定的文件与本文件用project命令进行联接
    C、把用#include 命令指定的文件与本文件进行宏替换
    D、把用#include 命令指定的文件与本文件作为一个源文件进行编译

2、2.以下程序运行后,输出结果是 。 #include <stdio.h> #define PT 5.5 #define S(x) PT*x*x void main() { int a=1,b=2; printf("%4.1f\n",S(a+b)); }
    A、49.5
    B、9.5
    C、22
    D、45.0

3、3.以下程序的运行结果是 。 #include <stdio.h> #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

4、4.以下程序运行后的输出结果是 。 #include <stdio.h> #define S(x) 4*x*x+1 void main() { int i=6,j=8; printf("S(i+j)=%d\n",S(i+j)); }

任务5.4复杂倒计时器随堂测验

1、1.C语言规定,程序中各函数之间 。
    A、既允许直接递归调用也允许间接递归调用
    B、允许直接递归调用不允许间接递归调用
    C、不允许直接递归调用也不允许间接递归调用
    D、不允许直接递归调用允许间接递归调用

2、2.以下程序运行时,给变量x输入10,则程序的输出结果是 。 #include <stdio.h> 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) ; }
    A、55
    B、54
    C、65
    D、45

3、3.以下程序的运行结果是什么? #include <stdio.h> long fib(int g) { switch (g) { case 0: return 0; case 1: case 2: return 1; } return(fib(g-1)+fib(g-2)); } void main( ) { long k; k=fib(5); printf("k=%ld\n",k); }

第13周 第六章 位运算

任务6.1求2的次幂随堂测验

1、1.以下程序运行结果是: #include <stdio.h> void main() { unsigned char a,b,c; a=0x3; b=a|0x8; c=b<<1; printf("%d %d",b,c); }
    A、-11 12
    B、-6 -13
    C、12 24
    D、11 22

2、2.以下程序运行结果是: #include <stdio.h> void main() { char x=040; printf("%o ",x<<1); }
    A、100
    B、80
    C、64
    D、32

3、3.以下程序运行结果是: #include <stdio.h> void main() { char x=040; printf("%d",x=x<<1); }
    A、100
    B、160
    C、120
    D、64

任务6.2 统计二进制数中1的个数随堂测验

1、1.设int b=2;表达式(b>>2)/(b>>1)的结果是 。
    A、0
    B、2
    C、4
    D、8

2、2. 下面程序输出的结果是: #include <stdio.h> void main() { char x=040; printf("%o ",x>>1); }

任务6.3 大小写转换随堂测验

1、1.以下程序运行结果是: #include <stdio.h> void main() { int c=35; printf("%d ",c&c); }
    A、0
    B、70
    C、35
    D、1

2、2.以下程序运行结果是: #include <stdio.h> void main() { unsigned char a,b; a=4|3; b=4&3; printf("%d %d",a,b); }
    A、7 0
    B、0 7
    C、1 1
    D、43 0

3、3.语句printf("%d ",12&012);的输出结果是:
    A、12
    B、8
    C、6
    D、012

4、4.以下程序运行结果是: #include <stdio.h> void main() { int x=35; char z='A'; int b; b=((x&15)&&(z<'a')); printf("%d ",b); }
    A、0
    B、1
    C、2
    D、3

任务6.4 简易位运算计算器随堂测验

1、1.以下程序运行结果是: #include <stdio.h> void main() { unsigned char a,b; a=7^3; b=~4&3; printf("%d %d",a,b); }
    A、4 3
    B、7 3
    C、7 0
    D、4 0

2、2.设有定义语句:char c1=92,c2=92;则以下表达式中值为0的是:
    A、c1^c2
    B、c1&c2
    C、~c2
    D、c1|c2

3、3.以下程序运行结果是: #include <stdio.h> void main() { int x=3,y=2,z=1; printf("%d ",x/y&~z); }
    A、3
    B、2
    C、1
    D、0

zy23 十进制转化成二进制

1、编写程序,利用右移位运算,实现将十进制转化成二进制并输出。提示:用数组记录二进制。

第14-15周 第七章 结构体

任务7.1 学龄判断随堂测验

1、当说明一个结构体变量时,系统分配给它的内存是 。
    A、结构中第一个成员所需内存量
    B、各成员所需内存量的总和
    C、成员中占内存量最大者所需的容量
    D、结构中最后一个成员所需内存量

2、定义以下结构体类型 struct s { int a; char b; float f; }; 则语句printf(“%d”,sizeof(struct s));的输出结果为 。
    A、3
    B、4
    C、6
    D、7

3、下面叙述中不正确的是 。 struct stu { int a; float b; } stutype;
    A、struct是结构体类型的关键字
    B、struct stu是用户定义的结构体类型
    C、stutype是用户定义的结构体类型名
    D、a和b都是结构体成员名

4、下面对typedef的叙述中,不正确的是 。
    A、用typedef可以定义各种类型名,但不能用来定义变量
    B、用typedef可以增加新类型
    C、用typedef只是将已存在的类型用一个新的标识符来代表
    D、使用typedef有利于程序的通用和移植

5、对图5-1所表示的数据结构进行类型及变量定义。设类型名为struct stu,变量名为boy1、boy2,并对变量进行赋值和输出。

任务7.2 比身高随堂测验

1、定义以下结构体类型 struct s { char name[10]; int score[50]; float average; }stud1; 则stud1占用内存的字节数是 。
    A、64
    B、114
    C、228
    D、7

2、下面程序的运行结果是 。 #include "stdio.h" void main( ) { struct xx { int x; int y; } y0={5,3},y1={2,9}; printf("%d\n",y0.y/y0.x*y1.x); }
    A、5
    B、1
    C、出错
    D、0

3、以下程序段用来输出结构体变量ex所占存储单元的字节数。请填空。 struct st { char name[20]; double score; } ex; printf("ex size:%d\n",sizeof( ));

任务8.1 整型变量的间接访问随堂测验

1、若要说明x是整型变量,p为指向x的整型指针变量,则正确的说明是 。
    A、int x,*p=&x;
    B、int x,p=&x;
    C、int x,*p=*x;
    D、int *p=&x,x;

2、若有定义和语句“double r=99, *p=&r; *p=r;”,则以下正确的叙述是 。
    A、以上两处的*p含义相同,都是给指针变量p赋值
    B、在“double r=99, *p=&r;”中,把r的地址赋值给了p所指的存储单元
    C、语句“*p=r;”中,把变量r的值赋给指针变量p
    D、语句“*p=r;”中,将变量r的值赋给p所指向的存储单元

3、若有以下定义和语句: int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是 。
    A、*q=0;
    B、w=p;
    C、*p=a;
    D、*p=*w;

任务7.3 比身高(2)随堂测验

1、根据下面的表,定义结构体类型和结构体数组。

zy24

1、根据下图定义结构体数据,要求下图第一行数据必须输出(程序中直接初始化)。 第二行数据从键盘上获得,(可以不是下图第二行数据的值)。

第16-17周 第八章 指针

任务8.2 求两个整数的和差积商随堂测验

1、下面函数的返回值是 。 char *fun(char *p) { return p; }
    A、无确切的值
    B、形参p中存放的地址值
    C、一个临时存储单元的地址
    D、形参p自身的地址值

2、下面函数的返回值是 。 fun(int *p) { return *p; }
    A、不确定的值
    B、形参p中存放的值
    C、形参p所指存储单元中的值
    D、形参p的地址值

任务8.3 查找学生最高最低成绩随堂测验

1、若有定义“int a[5];”,则a数组中首元素的地址可以表示为 。
    A、&a
    B、a+1
    C、a
    D、&a[1]

2、已知指针p的指向如下图所示,则执行语句“*--p;”后,*p的值是 。
    A、30
    B、20
    C、19
    D、29

3、有如下说明,则数值为9的表达式是 。 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
    A、*p+9
    B、*(p+8)
    C、*p+=9
    D、p+8

4、下面说明不正确的是 。
    A、char a[l0] ="china";
    B、char a[10], *p=a; p="china"
    C、char *a; a="china" ;
    D、char a[10], *p; p=a="china"

5、以下与库函数strcpy(char *p1, char *p2)功能不相等的程序段是 。
    A、while ((*p1++=*p2++)!='\0');
    B、while((*p1=*p2)!='\0') { p1++; p2++; }
    C、while(*pl++=*p2++) ;
    D、while(*p2) *p1++=*p2++;

任务8.4 对学生的成绩排序随堂测验

1、下面程序段的运行结果是 。 char a[]="language", *p; p=a; while(*p!= 'u') { printf ("%c", *p-32); p++; }
    A、LANGUAGE
    B、language
    C、LANG
    D、langUAGE

2、有以下程序程序运行后的输出的第一个数是 。 #include <stdio.h> void f(int *x,int *y) { int t; t=*x; *x=*y; *y=t; } void main() { int a[8]={1,2,3,4,5,6,7,8},i, *p, *q; p=a; q=&a[7]; while(p<q) { f(p,q); p++;q--; } for(i=0;i<8;i++) printf("%d ",a[i]); }

3、有以下程序程序运行后的输出的第四个数是 。 #include <stdio.h> void f(int *x,int *y) { int t; t=*x; *x=*y; *y=t; } void main() { int a[8]={1,2,3,4,5,6,7,8},i, *p, *q; p=a; q=&a[7]; while(p<q) { f(p,q); p++;q--; } for(i=0;i<8;i++) printf("%d ",a[i]); }

4、以下程序运行后的输出结果是 。 #include <stdio.h> #include <string.h> void fun(char *s,int p,int k) { int i; for (i=p;i<k-1;i++) s[i]=s[i+2]; } void main() { char s[]="abcdefg"; fun(s,3,strlen(s)); puts(s); }

考试1——单元测验(一)编程题

单元测验(一)编程题

1、从小到大输出所有的水仙花数。保存到数组中后,再从大到小输出水仙花数。

2、从键盘输入一个数,判断它是不是同构数。

考试2——单元测试(二)编程题

编程题。

1、输入一个字符串,将其中的数字累加求和,输出结果。

2、输入一个字符串,将其中的数字字符倒序输出。