高级语言程序设计(南京邮电大学) 中国大学mooc慕课答案2024版 m43469
第一章 初识计算机、程序与C语言(共5个视频,时长:32分钟54秒) 第一章单元测验
1、 以下哪个是冯诺伊曼的思想______。
答案: 程序存储的思想
2、 关于软件,下列说法不正确的是_______。
答案: 软件就是程序
3、 以下关于源程序与目标程序的说法,不正确的是______。
答案: 所有高级语言的编译器均一样
4、 第一个结构化程序设计语言是_____。
答案: PASCAL
5、 贝尔实验室的Dennis M. Ritchie于1973年用C语言重写了____操作系统。
答案: UNIX
6、 如果计算机有32根地址总线,其存储器的最大存储容量为___。
答案: 4GB
7、 二进制数10101010101所对应的八进制数为____。
答案: 2525
8、 二进制数10101010101所对应的十六进制数为______。
答案: 555
9、 可运行的C语言程序的扩展名为_______。
答案: exe
10、 C程序编译之后生成的文件名的扩展名是_____。
答案: .obj
11、 C语言源程序开发的第一步为_______。
答案: 编辑
12、 观察本章的“Hello world”C程序,打印“Hello world”用的函数为_______。
答案: printf
13、 十进制数348所对应的八进制数为__。
答案: 534
14、 C程序的完整开发过程包括:编辑、___、链接和运行。
答案: 编译
15、 观察本章的“Hello wolrd”C源程序,每条语句以_结束。
答案: (以下答案任选其一都对)分号;
;;
;
第二章 初识C源程序及其数据类型(共5个视频,时长:57分钟7秒) 第二章单元测验
1、 下列不正确的转义字符是______。
答案: ‘\68’
2、 下列不正确的常量表示是_。
答案: 1.2e0.5;
‘HelloWorld!’
3、 若函数中有定义语句:int k;,则下列说法正确的是_。
答案: 这时k中有值但是无意义
4、 关于C语言中数的表示,以下叙述正确的是__。
答案: 只有整型数在允许范围内能精确无误地表示,实型数会有误差
5、 C语言中,”\x5d”在内存中占用的字节数是_。
答案: 2
6、 C语言中,一个字符型变量在内存中占用的字节数是_。
答案: 1
7、 以下正确的 C 语言变量名是_。
答案: excise_1
8、 下列选项中,正确的整型常量是__.
答案: 0xfa;
0171
9、 下列选择中为C语言中非法常量的是_.
答案: ‘as’
10、 下列哪个选项属于C语言中的合法字符串常量 。
答案: “china”
11、 #include int main(){ double i=3.1415926; printf(“%.4f,%4.3f,%6.2f”, i, i, i); return 0; }
答案: 3.1416,3.142, 3.14
12、 有以下程序段 char ch; ch=’a’; printf(“%c,%d”,ch, ch); 已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是
答案: a,97
13、 若有以下定义和语句,char c1 = ‘b’, c2 = ‘e’; printf(“%d, %c”, c2-c1, c2-‘a’+’A’); 则输出结果是___
答案: 3,E
14、 语句printf(“You are \rA\x20niceE\bboy!”); 的输出结果是______。
答案: (以下答案任选其一都对)A niceboy!;
A niceboy!
15、 有scanf输入一个double型变量时,需要使用格式转换说明符为% 。
答案: lf
16、 程序中定义的一个字符型变量在内存中占用___ 个字节。
答案: 1
17、 C语言程序中需要进行输入/输出处理时,必须包含的头文件是 。
答案: (以下答案任选其一都对)stdio.h;
18、 C语言源程序名的后缀是_____。
答案: (以下答案任选其一都对)C;
c;
.C;
.c
19、 需要从键盘给一个字符型变量ch输入一个字符,使用的输入语句是:ch= (); 。
答案: (以下答案任选其一都对)getchar;
getch
20、 使用标准输出函数输出一个double型的变量x,要求输出数值占6列,即6个数字位,并保留2位小数位,则输出语句为printf(“%_____f”,x);。如:x=123.4567,要求输出在屏幕上为123.46;x=3.45678,则输出为□□3.46;□表示空格。
答案: (以下答案任选其一都对)6.2l;
6.2l;
6.2;
6.2
第三章 表达式与运算符(共8个视频,时长:49分钟13秒) 第三章单元测验
1、 sizeof 是一个_____。
答案: 运算符
2、 有以下变量定义:int k=9,x=14;,则执行语句k=(x%=k)-(k%=4)后,k的值为_____。
答案: 4
3、 判断char型变量c1是否为大写字母的正确表达式是_____。
答案: (c1>=’A’)&&(c1<=’Z’);
(‘A'<=c1)&&(‘Z’>=c1)
4、 设double m=4.0,n=4.0;使m为10.0的表达式是____。
答案: m+=n+2
5、 设变量均已正确定义并且赋值,以下与其他三组输出结果不同的一组语句是_。
答案: n=x++; printf(“%d”,n);
6、 若有变量定义:double x=4.5,y=2.5;则表达式(x+y)/2+(int)x%(int)y结果为__ ___。
答案: 3.5
7、 定义 int x,y; 执行 y=(x=1,++x, x+2); 语句后,x= ,y = __。
答案: 2 4
8、 表达式13/4*sqrt(6.25)/8 值的数据类型为____。
答案: double
9、 在以下的运算符中,运算对象都必须是整型数的是 。
答案: %
10、 设x是double型变量,则能将x的值四舍五入保留到小数点后两位的表达式是 。
答案: (int)(x*100+0.5)/100.0
11、 若有定义:int a=1,b=1,c,d;,则语句c=(a++) + (++b); 执行后a=__;b=_,c=_。
答案: 2 2 3
12、 将计算半周长的数学公式:写成如下各种形式,已知a、b、c均为整型变量,不正确的是__。
答案: x=1/2(a+b+c);
x=(float)((a+b+c)/2)
13、 设有语句:int a = 3 , b =5, m; 则执行语句:m = a<=3 && a+b<8 后,m的值为_____。
答案: 0
14、 需要将一个三位数字的整型数x中的十分位数字b2(如368中的6)提取出来,下列C语句__不能实现。
答案: b2=x%10/10
15、 请将三角形面积公式:写成合法的C语言表达式_。
答案: sqrt(s(s-a)(s-b)*(s-c))
16、 设已定义字符型变量ch,执行语句:ch=’D’+32-3; 后ch的值为____。
答案: a
17、 在C语言的赋值表达式中,赋值符号左边必须是已经定义过的___。
答案: 变量;
变量名
18、 设有语句:int a=7; float x=2.5, y=4.7;,则表达式x+a%3*(int) (x+y)%2/4的值是 。(小数点后面保留一位)
答案: 2.5
19、 若有int x=1,y=1,表达式(!x || y–)的值等于 。
答案: 1
20、 若有int n = 2;执行语句:n += n-= n*n后, n= 。
答案: -4
21、 若有int n = 2;执行语句:n += n-= n*=n后, n= 。
答案: 0
22、 设有语句:int a = 3 , b =5, m; 则执行语句:(m = a<=3)&& a+b<8 后,m的值为___。
答案: 1
第四章 程序流程控制(共11个视频,时长:2小时16分钟37秒) 第四章单元测验
1、 下列程序段执行后,m的值为______。int a=0, b=20, c=40, m=60;if (a) m=a;else if(b) m=b;else if(c) m=c;
答案: 20
2、 已有定义“int x = 0, y = 3;”,对于下面if语句,说法正确的是______。 if (x = y) printf(“X与Y相等”);
答案: 输出:X与Y相等,且执行完后x等于y
3、 关于switch语句,下列说法中不正确的是______。
答案: case语句必须以break结束
4、 下面程序段的运行结果是______。int a, b=0; for ( a=0 ; a++<=2 ; ) ; b += a; printf(“%d, %d”,a,b);
答案: 4,4
5、 下面程序段中,循环语句的循环次数是______。int x=0;while( x<6 ){ if ( x%2 ) continue; if ( x==4 ) break; x++;}
答案: 死循环
6、 若变量已正确定义,有以下程序段:int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf(“%d,%d,%d”,a,b,c);其输出结果是__。
答案: 3,5,3
7、 下列错误的语句是 __。
答案: if(a) ; a++; else a–;
8、 下列 __循环不是无限循环。
答案: for(y=1,x=1;x>=++y ; x++);
9、 若a、b已定义为int 类型的变量,则执行以下语句后b的值是 __。a=1; b=10;do {b-=a; a++;} while (b–<0);
答案: 8
10、 设所有的变量均为整型,下列循环执行结束后,变量m的值为 __。for (i=’a’;i<=’e’;i++){ m=1; for (j=5;j>=0;j–)m+=(i-100)*j; }
答案: 16
11、 有下列程序段:int i,sum=0; for(i=1; ;sum++) { if (sum>10) break; sum+=++i; }该程序段执行结束后, sum和i的值分别是______
答案: 12,4
12、 要求读入一个整数n,其值的范围是[1,10],即:n大于等于1,同时小于等于10.如果输入的n不在这个有效范围,则重新输入,直到满足范围规定为止。则可以用do…while语句控制。int n;do{ scanf(“%d”,&n);}while ( ______ );下列哪一个条件填入后无法正确控制?
答案: n>=1||n<=10
13、 有以下程序段,while 循环的循环体执行的次数是 。int k=0;while(k!=1) k++;
答案: 1次
14、 下列程序段执行结束后,k的值为______ int i,j,k=0; for (i=1;i<=3; i++) for (j=1;j<=i; j++) k+=i*j;
答案: 25
15、 有如下程序段:int x; scanf(“%d”,&x); switch ( x ) { case 9: x++; break; case 10: x++; case 11: x++; break; default: x++; }如果最初输入的x的值为10,则switch语句结束后x的值为__,
答案: 12
16、 #include int main( ){ int x=1, y=1, z=1; switch(x) { case 1: switch(y) { case 1: printf(“!!”); break; case 2: printf(“@@”); break; case 3: printf(“##”); break; } case 0: switch(z) { case 0: printf(“$$”); case 1: printf(“^^”); case 2: printf(“&&”); } default: printf(““);} return 0;}该程序的运行结果是__ (提示:输出的各字符之间没有空格,在英文半角输入状态下输入的字符有效)
答案: (以下答案任选其一都对)!!^^&&;
!!^^&&**
17、 #include int main( ){ int m=0, n=4521; do{ m = m * 10 + n % 10; n /= 10; }while(n); printf( “%d”, m ); return 0;}该程序的运行结果是__
答案: (以下答案任选其一都对)1254;
1254
18、 #include int main( ){ int x, y=0, z=0; for ( x=1 ; x<=5 ; x++ ) { y = y + x; z = z + y;} printf( “%d”, z ); return 0;}该程序的运行结果是__
答案: 35
19、 #includeint main( ){int a=1, b=2;for( ; a<8 ; a++ ){ a += 2; if ( a == 6 ) continue; if ( a > 7 ) break; b++; }printf( “%d,%d”, a, b ); return 0;}该程序的运行结果是__
答案: (以下答案任选其一都对)9,3;
9,3
20、 #include int main(){int x=5,y=4,z=3; if(x>y>z) printf(“right”); else printf(“wrong”); return 0;}该程序的运行结果是__
答案: (以下答案任选其一都对)wrong;
wrong
21、 循环的终止一般是在while后的表达式或for语句的表达式2的值为假的时候不再进入循环体,如果希望从循环体中直接退出循环,则可以通过在循环体内使用_____语句实现。
答案: (以下答案任选其一都对)break;
break
22、 switch语句中的______ 分支是可选项,表示switch后的表达式与任何case后的常量都不相等时执行此分支。
答案: (以下答案任选其一都对)default;
default
第五章 函数的基本知识(共7个视频,时长:48分钟8秒) 第五章单元测验
1、 函数的返回值类型由__决定。
答案: 定义函数时指定的返回值类型
2、 以下选项中叙述错误的是__。
答案: C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
3、 对于 C 语言的函数,下列叙述中正确的是__。
答案: 函数的定义不能嵌套,但函数调用可以嵌套
4、 以下函数调用语句中含有__个实参。 func((exp1,exp2),(exp3,exp4,exp5));
答案: 2
5、 若主函数有变量定义:int x=1 ; double m=2.3 ; 且有合法的函数调用语句f ( m , x); 则下列关于函数f的原型声明中一定错误的是 。
答案: void f ( double , int , int );
6、 关于return语句的理解,下列哪一种说法是错误的 。
答案: return 后的表达式若与函数返回类型不一致时,一定会在编译时出错
7、 有以下程序int fun(int x,int y){return(x+y);}int main(){ int a=1,b=2,c=3,sum; sum=fun((a++,b++,a+b),c++); printf(“%d”,sum); return 0; } 执行后的输出结果是__。
答案: 8
8、 若已定义一个返回值为void型的函数,则调用该函数的叙述中正确的是__。
答案: 函数调用只能作为独立的函数调用语句存在
9、 设有下列程序段:static char b=2;void Y ( ){ static float d=4;…….}int a=1;void X ( ){ int c=3; …… }关于程序段中各变量的属性,以下叙述中错误的是__。
答案: d是静态变量,函数X和函数Y都可以访问
10、 关于同名问题,下列哪一种理解不正确 。
答案: 形式参数可以与函数体内的局部变量同名
11、 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 。
答案: 单向值传递
12、 若函数定义时不指明函数类型,则其默认的返回值类型是 。
答案: int
13、 以下 存储类型在变量未赋值的情况下,系统自动初始化为0。
答案: static
14、 以下叙述中正确的是 。
答案: 调用函数时,函数名必须与被调用函数定义时的函数名完全一致
15、 下面关于静态局部变量的描述,不正确的是______。
答案: 静态局部变量全局可见
下方是付费阅读内容:本平台商品均为虚拟商品,无法用作二次销售,不支持退换货,请在购买前确认您需要购买的资料准确无误后再购买,望知悉!
完整答案需点击上方按钮支付5元购买,所有答案均为章节测试答案,购买后上方矩形框将出现已付费的隐藏内容。
,
16、 C语言程序的基本单位是 。
答案: 函数
17、 一个函数的完整定义由函数首部和 组成。
答案: 函数体
18、 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是__(传值或传地址这两种之间选填一个)。
答案: 传值
19、 若函数定义时不指明函数类型,则其默认的返回值类型是__。(用表达类型的关键字来描述)
答案: int
20、 定义静态局部变量的关键字是 。
答案: static
21、 每一个C语言源程序必须有一个____函数。
答案: (以下答案任选其一都对)主;
main
22、 C语言中,表示函数返回的关键字是 。
答案: return
23、 按作用域变量可分为两类,分别是局部变量和 变量。
答案: 全局
第六章 数组(共 8个视频,时长:1小时15 分钟51 秒) 第六章单元测验
1、 在C 语言中,引用数组元素时,其数组下标的数据类型不允许的是__。
答案: 实型数
2、 short int类型变量占用两个字节,有如下定义:short int array[10]={0,2,4};,则数组array在内存中所占字节数是__。
答案: 20
3、 若有说明:int a[3][4];则对a数组元素的非法引用是__。
答案: a[0][4]
4、 下面程序中有错误的行是 (每行程序前面的数字表示行号)__。1int main()2 { int a[3]={1};3 int i;4 scanf(“%d”,a);5 for(i=1;i<=3;i++) a[0]=a[0]+a[i];6 printf(“a[0]=%d”,a[0]);7 return 0;8}
答案: 5
5、 以下程序给数组所有元素输入数据,填入 能完成该功能。#include int main() { int array[5],i=0;while(i<5)scanf(“%d”, ___);return 0;}
答案: &array[i++]
6、 若定义int a[][4]={1,2,3,4,5,6,7,8};a[1][0]的值是 。
答案: 5
7、 以下错误的定义语句是 。
答案: int x[4][ ]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
8、 以下程序的输出结果是 。# include int main ( ) { int n[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n [j]=”n[i]+1;printf(“%d”,n[k-1]);return” 0;}=”” =”” a:不确定的值=”” b:3=”” c:2=”” d:1=”” 答案:=”” <span=””>3</k;i++)for(j=0;j<k;j++)n>
9、 下列正确的一维数组初始化是 。
答案: int a[5]={1,2};
10、 若定义int m[10]={9,4,12,8,2,10,7,5,1,3};则m[m[4]+m[8]]的值是 。
答案: 8
11、 在C语言中,数组名代表 。
答案: 数组首地址
12、 若有说明:int a[10]; 则对a数组元素的正确引用是 。
答案: a[0]
13、 下面程序如果只有一个错误,是 有错。int main() //1{ double a[3]={0}; //2 int i; //3 for(i=0;i<3;i++) scanf(“%d”,&a[i]); //4 for(i=1;i<3;i++) a[0]=a[0]+a[i]; //5 printf(“%f”,a[0]); //6 return 0; //7} //8
答案: 第4行
14、 若有说明:int a[][4]={0}; 则下面叙述正确的是 。
答案: 数组a中每个元素都可得到初值0
15、 若有定义int b[5][7]; 根据数组存储顺序,b[0][0]为第1个元素,则第10个元素是 。
答案: b[1][2]
16、 当输入a<回车> bc<回车> def<回车>时,下面程序输出的第三行是 。#include int main() { char X[6]; int i; for(i=0;i<6;i++) X[i]=getchar(); for(i=0;i<6;i++) putchar(X[i]); return 0; }
答案: d
17、 如下程序执行后输出 。#include int main(){ static int a[3][3]; int i,j; for (i=0;i<3;i++) for (j=0;j<3;j++) a[i][j]=a[j][i]+i*j; printf(“%d,%d”,a[1][2],a[2][1]); return 0;}
答案: 2,4
18、 写出程序的运行结果 。#includeint fun(int s[],int t[]){ int i,j=0; for(i=0;i<10;i++) if(i%2) { t[j]=s[i]; j++; } return j;} int main() { int X[10]={1,2,3,4,5,6,7,8,9,10}; int Y[10]; int m,i; m=fun(X,Y); for(i=0;i<m;i++) printf(“%d”,y[i]);=”” printf(“”);=”” return=”” 0;=”” }=”” 答案:=”” <span=””>246810</m;i++)>
19、 写出程序的运行结果的第二行输出: 。#include int main() { int X[4][4]={{11,2,31,14},{5,16,7,4},{18,9,6,10},{17,1,3,12}}; int i,j,k,t; for(i=0;i<4;i++) for(j=0;j<4;j++) for(k=j+1;k<4;k++) { if (X[i][j]>X[i][k]) { t=X[i][j]; X[i][j]= X[i][k]; X[i][k]=t; } } for(i=0;i<4;i++) { for(j=0;j<4;j++) printf(“%d”,X[i][j]); printf(“”); } return 0; }
答案: 45716
20、 有以下C程序程序运行后的输出结果是 。#include #define N 20void fun(int a[],int n,int m){ int i,j; for(i=m;i>=n;i–) a[i+1]=a[i];}int main(){ int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++) printf(“%d”,a[i]); return 0;}
答案: 12334
21、 若有定义int a[3][5],则sizeof(a)的值是 。
答案: 60
22、 若有定义int a[3][5],则sizeof(a[0][0])的值是 。
答案: 4
23、 下列程序的输出结果是 。#includevoid fun(int p[]){ printf(“%d”,p[5]); }int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; fun(&a[3]); return 0;}
答案: 9
第七章 指针(共 14个视频,时长: 2小时37分钟 39秒) 第七章单元测验
1、 如有定义int a,p=&a;输入语句为scanf(“%d”,_);或者scanf(“%d”,_);输出为printf(“%d”,_);或者printf(“%d”,_)。
答案: &a,p,a,p
2、 设int p, x, a[5]={1,2,3,4,5}; p=a; 能使x的值为2的语句是 。
答案: x=*(a+1);
3、 下列对指针p的操作,正确的是 。
答案: int a,p=&a;*p=2;
4、 若有说明:int a[ ]={15,12,-9, 28,5, 3 },p=a, 则下列哪一种表达错误______。
答案: (a=a+3)
5、 若有说明:int p1,p2,m=5,n; 以下均是正确赋值语句的选项是__。
答案: p1=&m; p2=p1;
6、 若定义int m[10]={9,4,12,8,2,10,7,5,1,3},p=m;下列哪一个表达式的结果与其他3个表达式的结果不同__。
答案: sizeof(m)
7、 设有定义:double x[10],p=x;,以下能给数组x下标为6的元素读入数据的正确语句是__。
答案: scanf(“%lf”,p+6);
8、 若有定义及赋值:int a[10]={0,1,2,3,4,5,6,7,8,9},p; p=a+1; 则引用数组a中值是5的元素的表达式是__。
答案: (p+4)
9、 设int x[]={1,2,3,4,5,6},p=x; 则值为3的表达式是__。
答案: p+=2; p++;
10、 设有下面的程序段:int arr [10]={1,2,3}, p=arr; 下列叙述正确的是__
答案: (p+4)与arr [4]相等
11、 有定义,int a[2][3],(p)[3]; p=a;对a中数组元素值的正确引用是
答案: (*(p+1)+2)
12、 设有语句int a[2][3],下面哪一种不能表示元素a[i][j] __
答案: ( a + i3 + j )
13、 若有定义: int *p[4];,则标识符p______
答案: 是一个指针数组名
14、 有变量定义如下: int a=10, p=&a, q=&p;下列哪一个选项不能表示10______。
答案: q
15、 有变量定义如下: int p;通过p指针申请动态空间的语句中表达错误的是__
答案: p=(int ) calloc(10*sizeof(int));
16、 #includevoid sub(int x,int y,int z){ z=y-x;}int main(){ int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(“%d,%d,%d”,a,b,c); return 0;}该程序的输出结果为_____
答案: -5,-12,-7
17、 #include void fun(int x,int y){ x+=y; *y+=x;}int main( ){ int x=5,y=10; fun(x,&y); fun(y,&x); printf(“%d,%d”,x,y); return 0;}该程序的输出结果为_____
答案: 35,25
18、 #include int main( ){ int arr[10]={2,3,-9,5,7,0,4,-1,6,-7},*p; int sum=0; for (p=&arr[3];p<arr+10;) sum+=”*p++;” printf(“%d”,sum);=”” return=”” 0;}该程序的输出结果为_________________=”” 答案:=”” <span=””>14</arr+10;)>
19、 #include int main(){ int j, a[]={1,3,5,7,9,11,13,15},p=a+5; for(j=3; j; j–) switch(j) { case 1: case 2: printf(“%d,”,p++); break; case 3: printf(“%d,”,*(–p)); } return 0;}该程序的输出结果为_____
答案: 9,9,11,
20、 #include #define N 5int fun(int s, int a, int n){ int j; s=a; j=n; while(a!=s[j]) j–; return j;}int main(){ int s[N+1]; int k; for(k=1; k<=N; k++) s[k]=k+1; printf(“%d”,fun(s,4,N)); return 0;}该程序的输出结果为_____
答案: 3
21、 对n个元素的一维数组进行选择法排序,需要进行______趟排序.(答案中间不要加空格,避免格式错误)
答案: (以下答案任选其一都对)n-1;
N-1;
n;
N
22、 有定义: int a[5]={0,1,2,3,4},*p=a; 为了表达元素值为2的元素,除了可以用a[2]表示以外,还可以有___种等效的表示方法?(答案只填写一个阿拉伯数字)
答案: 3
第八章 字符串(共 4个视频,时长: 35分钟 55秒) 第八章单元测验
1、 下列程序段运行后,i的正确结果为______。int i=0;char s=”a\041#041\b”;while(s++) i++;
答案: 8
2、 以下不能正确进行字符串初始化的语句是____。
答案: char str[5]=”good!”;
3、 下面判断字符串s1是否大于s2,正确的表达式是_____。
答案: if (strcmp(s1,s2)>0)
4、 strlen(“b\013c\xac\abc”)的值为___。
答案: 9
5、 假设已定义char a[10]; char p; 下面的赋值语句中,正确的是________。
答案: p=a;
6、 假设已定义char ch[20],*str=ch; 下列哪条语句不正确_____。
答案: ch=”teacher”;
7、 以下程序的输出结果为___。#include int main(){ char b[]=”Hello, you!”; b[5]=0; printf(“%s”,b); return 0;}
答案: Hello
8、 下面程序段的运行结果是____。#include int main(){ char s[]=”123″, t[]=”abcd”; if(s>t) printf(“%s”,s);elseprintf(“%s”,t); return 0;}
答案: abcd
9、 下面字符串处理函数中哪一个需要两个参数?
答案: strcpy
10、 下面判断两个字符串是否相等的表达式正确的是___。
答案: if (strcmp(s1,s2)==0)
11、 有程序段:char p=”abcdefghijklmnopq”;while (p++!=’e’);printf(“%c”,*p);输出结果为___。
答案: f
12、 函数调用strcat(strcpy(str1, str2), str3)的功能是_____。
答案: 将串str2复制到串str1之中,然后再将str3连接到串str1之后
13、 已知char str, s=&str; 正确的语句是__。
答案: *s=”computer”;
14、 已知char s[20]=”programming”, ps=s;则值不为字母o的表达式是______。
答案: ps+2
15、 有以下语句,正确的描述是__。char x[ ]=”12345″;char y[ ]={‘1′,’2′,’3′,’4′,’5’};
答案: x数组的长度大于y数组的长度
16、 C语言中,将两个字符串进行连接的函数为_______(只写函数名即可)。
答案: strcat
17、 strlen(“ab\022\x12\ab\a”)的值为___。
答案: 8
18、 采用gets输入字符串并保存在字符数组s1中的C语句为_______。
答案: gets(s1);
19、 有程序段:char s1[ ]=”I Like Pizza!”;strupr(s1);puts(s1);输出结果为________。
答案: I LIKE PIZZA!
20、 假设char s1[ ]=”Basic”, s2[ ]=”Base”; if (strcmp(s1,s2))strcpy(s1, s2);请问现在s1为__。
答案: Base
21、 strlen(“ab\045+045’b”)的值为___。
答案: (以下答案任选其一都对)9;
9
22、 char a[7]=”abcdef”, b[4]=”ABC”;strcpy(a,b);此时,a[5]的值为_____。
答案: (以下答案任选其一都对)f;
‘f’
23、 判断两个字符串s1和s2是否相等,应该使用____函数。
答案: strcmp
第九章 编译预处理与多文件工程程序(共5个视频,时长: 36分钟 29秒) 第九章单元测验
1、 C语言编译系统对宏定义的处理 。
答案: 在对C程序语句正式编译之前处理
2、 以下对宏替换的叙述,不正确的是 。
答案: 宏替换时先求出实参表达式的值,然后代入形参运算求值
3、 以下不正确的叙述是 。
答案: #include命令可以指定多个被包含头文件
4、 下列关于外部变量的说法,正确的是 。
答案: 全局外部变量可以用于多个模块,extern只是声明而不是重新定义
5、 下列关于多文件工程程序的组织原则中,不正确的是 。
答案: 多文件工程程序中模块的数量越多越好
6、 以下叙述中正确的是 。
答案: 在C语言中,预处理命令行都是以“#”开头
7、 关于编译预处理,下列说法正确的是 。
答案: 用户自定义头文件时使用条件编译指令可以避免重复包含
8、 宏定义#define G 9.8中的宏名G表示 。
答案: 一个字符串
9、 C 语言中,宏定义有效范围从定义处开始,到源文件结束处结束,但可以用__来提前解除宏定义的作用。
答案: #undef
10、 在一个C语言源程序文件中所定义的全局变量,其作用域为__。
答案: 由具体定义位置和extern 说明来决定范围
11、 对于以下宏定义: #define M 1+2 #define N 2*M+1执行语句“x=N;”之后,x的值是 。
答案: 5
12、 对于以下宏定义: #define M(x) x*x #define N(x, y) M(x)+M(y)执行语句z=N(2, 2+3);后,z的值是 。
答案: 15
13、 请写出下面程序的输出结果。#includeint main ( ){ int x = 0, y = 1, z; z=2*x+y; #ifdef TEST printf ( “%d,%d,” , x, y ); #endif printf ( “%d”, z ); return 0; }
答案: 1
14、 #include#define ADD(y) 3.54+y#define PR(a) printf(“%d”,(int)(a))#define PR1(a) PR(a);putchar(”)int main( ){ int i=4; PR1(ADD(5)*i ); return 0;}
答案: 23
15、 请写出下面程序的输出结果。#include#define MIN(x,y) (x)<(y)?(x):(y) int main( ) { int i ,j ,k; i=10; j=15; k=10*MIN(i,j); printf(“%d”,k); return 0;}
答案: 15
第十章 结构、联合、枚举(共10个视频,时长: 1小时2分钟 10秒) 第十章单元测验
1、 以下各选项旨在为一个已有类型重命名一种新的类型名,其中正确的是 。
答案: typedef int v3;
2、 若有以下结构体定义:struct exam{ int x,y; }v1; 则 是正确的引用或定义。
答案: struct exam v2={10};
3、 在如下结构体定义中,不正确的是 。
答案: struct stud[20]{ long no; double score;};
4、 struct date{ int year,month,day; };struct worklist{ char sex; struct date birthday; }person;对结构体变量 person 的出生年份进行赋值时,下面正确的赋值语句是 。
答案: person.birthday.year=2014
5、 设有如下定义:struct sk{ int a;float b;}data,p;若有p=&data;,则对data中的a域的正确引用是 。
答案: (p).a
6、 以下选项中,能定义s为合法的结构体变量的是 。
答案: struct { double a ; char b[10]; }s;
7、 有以下程序的运行结果是__。#include struct ord{ int x,y;} dt[2]={1,2,3,4};int main(){ struct ord *p=dt; printf(“%d,”,++p->x); printf(“%d”,++p->y); return 0;}
答案: 2,3
8、 有以下程序的运行结果是__。#include struct st{ int x, y;} data[2]={1,10,2,20};int main(){ struct st *p=data; printf(“%d,”, p->y); printf(“%d”,(++p)->x); return 0;}
答案: 10,2
9、 有以下结构体说明、变量定义和赋值语句 struct STD{ char name[10]; int age; char sex; }s[5],*ps; ps=&s[0]; 则以下scanf函数调用语句中错误引用结构体变量成员的是__。
答案: scanf(“%d”,ps->age);
10、 下面程序的输出结果是 。 #includestruct stru { int x; char c; }; void func(struct stru b) { b.x=20; b.c=’y’; } int main() { struct stru a={10,’x’}; func(a); printf(“%d,%c”,a.x,a.c); return 0;}
答案: 10,x
11、 设有以下说明语句:struct ex{ int x ; float y; char z ;}example; 则下面的叙述中不正确的是 。
答案: example是结构体类型名
12、 以下关于 typedef 的叙述不正确的是 。
答案: 用 typedef 可以增加新类型
13、 对于一个结构体变量,系统分配的存储空间至少是______。
答案: 所有成员存储空间的总和
14、 以下定义不正确的是______。
答案: struct{ int m,n; };
15、 下面程序的输出结果是 。#includestruct stru { int x; char c; }; void func(struct stru b) { b->x=20; b->c=’y’; } int main() { struct stru a={10,’x’},p=&a; func(p); printf(“%d,%c”,a.x,a.c); return 0;}
答案: 20,y
16、 有结构体定义如下。struct person{ int ID; char name [ 20 ]; struct { int year, month, day; } birthday;} Tom;将Tom中的day赋值为26的语句为______。(语句最后的分号也必须写上)
答案: Tom.birthday.day=26;
17、 已有定义“struct { int m, n; } arr[2] = { { 11, 22 }, { 33, 44 } }, *ptr = arr;”,则表达式++ptr->m的值为______。
答案: 12
18、 已有定义“struct { int m, n; } arr[2] = { { 11, 22 }, { 33, 44 } }, *ptr = arr;”,则表达式(++ptr)->m的值为______。
答案: 33
19、 已知教师记录描述为 struct teather{ int id; struct { int y; int m; int d; } birth;}t;将变量t中的d成员赋值为12的语句为 。(语句最后的分号也要写)
答案: t.birth.d=12;
20、 设有以下结构类型说明和变量定义: struct stud{ long id[2]; double ave;} a, *p;则变量a在内存所占字节数是 。
答案: 16
21、 有如下定义: struct { int x; char y; }sa[2]={{1,”ab”},{2,”cd”}},p=sa; 则:表达式 ++p->x 的值是 。
答案: 2
22、 有如下定义: struct { int x; char y; }sa[2]={{1,”ab”},{2,”cd”}},p=sa; 则:表达式 (p+1)->x 的值是 。
答案: 2
23、 有如下定义: struct { int x; char y; }sa[2]={{1,”ab”},{2,”cd”}},p=sa; 则:语句:printf(“%s”,(++p)->y); 的输出是 。
答案: cd
第十一章 文件(共7个视频,时长: 54分钟54秒) 第十一章单元测验
1、 关于文件,下列说法中正确的是 。
答案: C语言中,根据数据的存放形式,文件可分为文本文件和二进制文件
2、 如果要对E盘myfile目录下的文本文件abc.txt进行读、写操作,文件打开方式应为 。
答案: fopen( “e:\myfile\abc.txt”, “r+” );
3、 对“fread( arr, 36, 3, fp )”解释正确的是 。
答案: 从fp中读出3个36 个字节的内容,并存放至 arr 中
4、 以下选项中,不能将文件位置指针移到文件开头的是 。
答案: fseek( fp, 0, SEEK_CUR, );
5、 若要用fopen函数打开一个已存在的文本文件,向该文件尾部增加数据,则文件打开方式应是__。
答案: “a”
6、 设fp是指向某个文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是__。
答案: 非零值
7、 fopen( ) 函数的 mode 取值 “r” 和 “w” 时,它们之间的差别是__。
答案: “r” 不可向文件写入 ,”w” 可向文件写入。
8、 已知函数调用的形式:fread(buffer,size,count fp);其中buffer代表是__。
答案: 一个指针,指向要存放读入数据的地址
9、 以下叙述中错误的是__。
答案: getchar函数用于从磁盘文件读入字符
10、 函数rewind的作用是__。
答案: 使位置指针重新返回文件的开头
11、 当已存在一个abc.txt文件时,执行函数fopen(“abc.txt”,”r+”)的功能是 。
答案: 打开abc.txt文件,可以读取原内容和写入新内容
12、 fopen()函数第2个参数取值为“w+“和”a+”时都可以写入数据,它们之间的差别是 。
答案: 在文件存在时,去“w+”时清除原文件数据,而取“a+”时保留原文件数据
13、 若要用fopen函数打开一个新的二进制文件,该文件要既能读又能写,则文件使用方式应是 。
答案: “wb+”
14、 以下叙述中正确的是 。
答案: 当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
15、 为了向二进制文件尾部增加数据,打开文件的方式应采用 。
答案: “ab”
16、 如果abc.txt文件的内容为:23=6and408is40! 下面程序运行后,abc.txt文件的内容变成 #include #includeint main( ){ FILE fp; fp=fopen(“abc.txt”,”r+”); while(!feof(fp)) if(fgetc(fp)==’‘) { fseek(fp,-1,1); fputc(‘$’,fp); fflush(fp); } fclose(fp); return 0;}
答案: 2$3=6and40$8is40!
17、 请写出下面程序的输出结果 。#include #includeint main() { int i,n;FILE fp; if((fp=fopen(“temp”,”w+”))==NULL) { printf(“不能建立temp文件”); exit(0); } for(i=1;i<=10;i++) fprintf(fp, “%3d”,i); for(i=0;i<10;i++) { fseek(fp, i 3L ,SEEK_SET); fscanf(fp, “%d”,&n); fseek(fp, i 3L ,0); fprintf(fp, “%3d”,n+10); } for(i=0;i<5;i++) { fseek(fp, i 6L ,0); fscanf(fp, “%d”,&n); printf(“%d,”,n); } fclose(fp); return 0;}
答案: 11,13,15,17,19,
18、 请写出下面程序运行后文件abc.dat中的内容 。#include int main(){FILE pf;char s1=”China”,*s2=”Beijing”;pf=fopen(“abc.dat”,”wb+”);fwrite(s2,7,1,pf);rewind(pf);fwrite(s1,5,1,pf);fclose(pf);return 0;}
答案: Chinang
19、 以下程序运行后的输出结果的第二行是 。#includeint main(){ FILE *fp;int k,n,i,a[6]={10,20,30,40,50,60};fp=fopen(“d2.txt”,”w”);for(i=0;i<6;i++)fprintf(fp,”%d,%d”,i,a[i]);fclose(fp);fp=fopen(“d2.txt”,”r”);for(i=0;i<3;i++){ fscanf(fp,”%d,%d”,&k,&n); printf(“%d,%d”,k,n);}fclose(fp); return 0;}
答案: 1,20
20、 已存在文件file.txt,其内容为sample1234ASDw,请写出程序的运行结果 。#include#includeint main( ){ FILE *fp; char ch; int count=0; fp = fopen( “file.txt”, “r” ); if ( fp == 0 ) { printf( “file error” ); exit(1); } ch = fgetc(fp); while( !feof( fp ) ) { if ( ch >= ‘a’ && ch <= ‘z’) count++; ch = fgetc(fp); } printf( “%d”, count); fclose( fp ); return 0;}
答案: 7
点关注,不迷路,微信扫一扫下方二维码
关注我们的公众号:阿布查查 随时查看答案,网课轻松过
为了方便下次阅读,建议在浏览器添加书签收藏本网页
电脑浏览器添加/查看书签方法
1.按键盘的ctrl键+D键,收藏本页面
2.下次如何查看收藏的网页?
点击浏览器右上角-【工具】或者【收藏夹】查看收藏的网页
手机浏览器添加/查看书签方法
一、百度APP添加/查看书签方法
1.点击底部五角星收藏本网页
2.下次如何查看收藏的网页?
点击右上角【┇】-再点击【收藏中心】查看
二、其他手机浏览器添加/查看书签方法
1.点击【设置】-【添加书签】收藏本网页
2.下次如何查看收藏的网页?
点击【设置】-【书签/历史】查看收藏的网页