高级语言程序设计(东北大学)1467036442 中国大学mooc慕课答案2024版 m323232
第1周 程序设计入门 本周测试
1、 面向过程的高级语言包括( )
答案: C,BASIC
2、 程序设计语言包括( )
答案: 机器语言、汇编语言、高级语言
3、 用C语言编写的代码程序( )
答案: 是一个源程序
4、 以下叙述中正确的是( )
答案: 用C程序实现的算法可以没有输入但必须要有输出
5、 程序设计的基本步骤主要包括( )。
答案: 确定数据结构,算法描述、编写程序以及程序测试
6、 一个C语言程序总是从( )。
答案: 主函数开始执行
7、 C语言规定:在一个源程序中,main函数的位置( )
答案: 可以任意位置
8、 (2012.03全国二级C题)以下叙述中错误的是( )
答案: C程序在书写时,有严格的缩进要求,否则不能编译通过
9、 (2007.04全国二级C题)下列叙述中错误的是()
答案: 后缀为.obj和.exe的二进制文件都可以直接运行
10、 C语言中如何实现注释
答案: 通过 // 界定的内容为注释内容。例如 /测试/
11、 C语言中主函数的名称是
答案: main
12、 如下属于C基本语句的是
答案: 1+2;
13、 C语言中界定函数开始与结束的符号是
答案: { }
14、 关于C语言基本语句说法正确的是
答案: 基本语句必须以分号;作为结束标志
15、 实现向显示器输出信息的函数是
答案: printf
16、 面向过程的高级语言包括( )
答案: C,BASIC
17、 用C语言编写的程序代码( )
答案: 是一个源程序
18、 如下关于C语言基本语句的说法中正确的是
答案: 基本语句必须以分号;作为结束标志
第2周 信息编码与基本运算 本周测试
1、 (2007.04全国二级C题)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()
答案: 减号
2、 不合法的c语言标识符是( )
答案: x.c
3、 ()是c语言提供的合法的数据类型关键字
答案: long
4、 以下选项中不属于C语言的类型的是( )
答案: long short
5、 (2011.09全国二级C题)以下选项中关于C语言常量的叙述错误的是()。
答案: 经常被使用的变量可以定义成常量
6、 不正确的变量说明是( )
答案: double int a
7、 (2012.03全国二级C题)关于C语言中数的表示,以下叙述中正确的是()
答案: 只有整型数在允许范围内能精确无误的表示,实型数会有误差
8、 已知char a=’\17’,变量a中( )
答案: 包含1个字符
9、 以下能正确声明整型变量x,y和z并为其赋初值5的语句是( )
答案: int x=5,y=5,z=5;
10、 (2010.09全国二级C题)有定义:int a; long b; double x,y; 则以下选项中正确的表达式是( )
答案: a%(int)(x-y)
11、 设有定义:int x=2;,以下表达式中,值不为6的是
答案: 2*x, x+=2
12、 若有int n=6;表达式n%=n+=n-=n*n的值为( )
答案: 0
13、 (2009.09全国二级C题)表达式(int)((double)9/2)-(9)%2的计算结果是( )
答案: 3
14、 sizeof(float)是( )
答案: 一个整型表达式
15、 以下表达式不等价的一组是( )
答案: a!=b与a=a!b
16、 若有char ch=’A;则表达式ch=(ch>=’A’&&ch<=’Z’)(ch+32):ch的值是( )
答案: a
17、 判断char型变量c1是否为大写字母的正确表达式是( )
答案: (c1>=’A’)&&(c1<=’Z’)
18、 正确表达式数学不等式 10<x<100的C语言表达式是(假设x已经声明)()
答案: 10<x && x<100
19、 正确表达式数学不等式 |x|<100 其x不等于0的C语言表达式是(假设x已经声明)()
答案: -100<x && x<100 && x!=0
20、 表达式 (x=100,y=200)+!(0<x<20)的值为(假设x,y已经声明为int类型)
答案: 200
21、 可以实现绝对值运算的|x|的表达式是(假设x已经声明float类型)
答案: (x<0-x:x)
22、 正确表达式数学不等式 |x|<100 且x不等于0的C语言表达式是(假设x已经声明)()
答案: -100<x && x<100 && x!=0
23、 关于如下语句的输出结果为const int a=100;a=a+100;printf(“%d”,a);
答案: 程序存在错误无法运行
24、 关于如下语句的输出结果为double a=12.34;int c=0;c=(int)a++;printf(“%d”,c);
答案: 12
25、 关于如下语句的输出结果为double a=12.34;int c=0;c=((int)a)++;printf(“%d”,c);
答案: 程序存在错误无法运行
第3周 常用函数库与顺序结构 本周测试
1、 系统的标准输出文件stdout是指( )
答案: 显示器
2、 c语言中标准输入文件stdin是指( )
答案: 键盘
3、 下列描述中,正确的是( )
答案: 所有的输入/输出都是通过调用库函数处理的
4、 (2001.09全国二级C题)x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()
答案: scanf(“%d%d%d”,&x,&y,&z);
5、 (2005.09全国二级C题)以下叙述中正确的是()。
答案: 使用putchar函数时,必须在之前包含头文件stdio.h
6、 有以下程序void main(){int a=6,b=7;printf(“a=%%d,b=%%d”,a,b);}输出结果是( )。
答案: a=%d,b=%d
7、 (2010.03全国二级C题)有以下程序: void main() { char a,b,c,d; scanf(“%c%c”,&a,&b); c=getchar(); d=getchar(); printf(“%c%c%c%c”,a,b,c,d); } 当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符) 12 34 则输出结果是()。
答案: 12 3
8、 (2012.09全国二级C题)若有定义和语句:int a,b;scanf(“%d,%d”,&a,&b);以下选项中,不能将值3赋给变量a,值5赋给变量b的是()。
答案: 3 5
9、 阅读程序,指出输出结果是( )。void main(){char c1,c2,c3;c1=’a’;c2=’z’;c3=c2-c1;printf(“%c,%c,%d “,c1,c2,c3);}
答案: a ,z ,25
10、 若运行以下程序时,从键盘输入25,15,10<回车>,则输出结果为( )。void main(){int a1,a2,a3;scanf(“%d%d%d”,&a1,&a2,&a3);printf(“a1+a2+a3=%d”,a1+a2+a3) ;}
答案: 不确定值
11、 以下程序段 :int a=1234;printf(“%2d”,a);输出结果是( )
答案: 1234
12、 (2011.09全国二级C题)以下不能输出字符A的语句是()。(注:字符A的ASCII码值为65,字符a的ASCII码值为97)
答案: printf(“%d”,’A’);
13、 下面语句中,正确的是( )。
答案: printf(“%s”,”hello”);
14、 有如下语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确格式是( )。
答案: a=1,b=3,c=2
15、 数字字符0的ASCII值为48,若有以下程序main(){ char a=’a’,b=’b’; printf(“%c,”,b++); printf(“%d”,b-a);}程序运行后的输出结果是
答案: b,2
16、 有以下程序main(){ int a,b,d=25; a=d/10%9; b=a&&(-1); printf(“%d,%d”,a,b);}程序运行后的输出结果是
答案: 2,1
17、 若整型变量 int a=1,b=2,c=3,d=4;则条件表达式a<ba:c<dc:d的值
答案: 1
18、 有以下程序main(){ int a,b,p; scanf(“m=%dn=%dp=%d”,&a,&b,&p); printf(“%d%d%d”,a,b,p);}若想从键盘上输入数据,使变量a中的值为12,b中的值为56,p中的值为89,则正确的输入是
答案: m=12n=56p=89
19、 假设 float d=12.3456,则表达式printf(“%10.2f”,(int)d)的输出结果为
答案: 1.20
20、 假设 unsigned u=0,从键盘正确读入一个整数给u的语句是
答案: scanf(“%u”,&u);
21、 如下程序段执行的结果为int a=100,b=0,c;c=(b=100)+ (b>0) a++;printf(“c=%d”,c);
答案: 201
22、 如下程序段执行的结果为int a=100,b=200,c;c= a>b&&b+=100;c=b++;printf(“c=%d”,c);
答案: 200
23、 如下程序段执行的结果为 int a=100,b=200,c; c=!a+(b>>2)%10; printf(“c=%d”,c);
答案: 0
24、 以下叙述中正确的是()。
答案: 使用putchar函数时,必须在之前包含头文件stdio.h
25、 假设 float d=12.3456,则表达式printf(” % 10.2f”,d)的输出结果为
答案: 12.35
26、 如下程序段执行的结果为int a=100,b=0,c;c=(b=100)+ (b>0) *a++;printf(“%d”,c);
答案: 200
27、 如下程序段执行的结果为int a=100,b=200,c;c= a>b&&b+=100;c=b++;printf(“%d”,c);
答案: 200
28、 如下程序段执行的结果为 int a=100,b=200,c; c=!a+(b>>2) % 10; printf(“%d”,c);
答案: 0
29、 假设 float d=12.3456,则表达式printf(” % 10.2f”,(int)d/10.0)的输出结果为
答案: 1.20
第4周 逻辑判断与选择结构 本周测试
1、 对下面的程序说法正确的是______。void main(){ int x=3,y=0,z=0; if(x=y+z) printf(“*”); else printf(“####”);}
答案: 输出为####
2、 执行下面程序的结果为______。void main(){ int a=3,b=4,t=1; if(a>b) {t=a;a=b;b=t;} printf(“%d”,a);}
答案: 3
3、 执行下面语句段后的输出结果为______。 int i=-1; if (i<=0) printf(“*”); i=2; else printf(“%%%%”);
答案: 有语法错误
4、 下述语句中,______中的if 语法有错误
答案: if(x!=y) scanf(“%d”,x)else scanf(“%d”,y);
5、 假设变量i为整型量,比较下面两条if语句,选出正确答案______。if(i!=0);if(i);
答案: 两者作用等价
6、 下面程序执行后输出结果是______。 void main() { int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%d”,x); }
答案: -4
7、 阅读程序,分析输出结果是( )。#include <stdio.h>void main(){int x=10,y=5;switch(x){ case 1:x++;default: x+=y;case 2:y–;case 3:x–;}printf(“x=%d,y=%d”,x,y);}
答案: x=14,y=4
8、 阅读程序,分析输出结果是( )。#include <stdio.h>void main(){ int a=6,b=10,t; if((a=b)>0) t=a+b; printf(“%d”,t);}
答案: 20
9、 阅读程序,分析输出结果是( )。#include <stdio.h>void main( ){ int a=2,b=-1,c=2; if(a) if(b<0) c=0; else c++; printf(“%d”,c);}
答案: 0
10、 若执行下面的程序时从键盘输入10,则输出是( )。void main( ){ int a; scanf(“%d”,&a); if(++a<10) printf(“%d”,a++); else printf(“%d”,++a);}
答案: 12
11、 阅读程序,分析输出结果是( )。void main( ){ int x=0,a=1,b=1; switch(x) { case 0: a++; case 1: b++;break; case 2: a++;b++; } printf(“a=%d,b=%d”,a,b);}
答案: a=2,b=2
12、 下列条件语句中,功能与其他语句不同的是( )
答案: if(a==0) printf(“%d”,x);else printf(“%d”,y);
13、 (201203二级c)若下面程序运行时从键盘输入9<回车>,则输出结果是()。#include <stdio.h>void main(){ int a; scanf(“%d”, &a); if(a++ < 9) printf(“%d”, a); else printf(“%d”, a–);}
答案: 10
14、 有以下程序#include <stdio.h>main(){int y=9;if(y>0,y–) if(y%3==0) printf(“%d”,–y);printf(“%d”,y);}程序的运行结果是
答案: 8
15、 有以下程序#include <stdio.h>main(){int y=9;switch(y++){ case 9:y/=2; case 8:–y;}printf(“%d”,y);}程序的运行结果是
答案: 4
16、 以下程序#include <stdio.h>main(){int a=2,b=3,c=0;if(a=b) c=a;else c=b;printf(“%d”,c);}程序的运行结果是
答案: 3
17、 有以下程序#include <stdio.h>main(){int a=2,b=1,c=0;if(a&b) c=a;else c=b;printf(“%d”,c);}程序的运行结果是
答案: 1
18、 以下程序#include <stdio.h>main(){int a=2,b=1,c=0;if(a||b) c=a;else c=b;printf(“%d”,c);}程序的运行结果是
答案: 2
19、 如下程序的运行结果是()int main(){ int a=2,b=1,c=0; if(a>=b){ switch(a++,b++) { case 1: c=a; case 0: c=b;break; default: c=0; } } printf(“%d”,c); return 0;}
答案: 2
20、 如下程序的运行结果是()int main(){ int a=0,b=0,c=0; if(a=1,a>=b){ switch(b++) { case 1: c=a; case 0: c=b;break; default: c=0; } } printf(“%d”,c); return 0;}
答案: 1
21、 如下程序的运行结果是()int main(){ int a=3,b=1,c=0; if(a>ba:b){ switch(b%10) { case 1: c=a; case 0: c=b;break; default: c=0; } } printf(“%d”,c); return 0;}
答案: 1
22、 对下面的程序说法正确的是______。void main(){int x=3,y=0,z=0; if(x=y+z) printf(“*”); else printf(“####”);}
答案: 输出为####
第5周 迭代计算与循环结构 本周测试
1、 对于循环语句while(1);描述正确的是( )。
答案: 死循环
2、 下面程序的运行结果是( )#include <stdio.h>int main(){ int c1=2, c2=0; while(!c2–) printf(“%d, %d”, c1–, c2); return 0;}
答案: 输出2, -1
3、 若有语句while((ch=getchar())==’e’) printf(“*”);当输入字符串abcde<回车>时,while循环体执行()次。
答案: 0次
4、 已知int t=0; while(t=1) {…} 则以下叙述正确的是()
答案: 循环控制表达式的值为1
5、 以下程序段执行后的输出结果( )。int i; for(i=1; ; i++) printf(“%d”,i++);
答案: 死循环
6、 设已声明int型变量i和k,则下面for循环语句()。 for(i=0;k= -1,k=1; i++,k++) printf(“****”);
答案: 是无限循环
7、 以下程序中,for循环体执行的次数是()。#define N 2#define M 1+ N#define K M+1*M/2void main(){ int i; for( i= 1;i < K; i++) { …….. } …….}
答案: 4
8、 与语句while(!x)等价的语句是( )。
答案: while(x==0)
9、 以下关于循环的描述中,错误的是( )。
答案: do…while语句与while语句的区别仅仅是关键字while的位置不同
10、 在下列选项中,没有构成死循环的程序段是____
答案: int s=26; while (s) –s;
11、 下面程序执行后的输出结果是()。#include <stdio.h>void main( ){ int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; }printf(“n=%d”,n);}
答案: n=4
12、 以下正确的描述是()
答案: 只能在循环体内和switch语句体内使用break语句
13、 (201203二级C)下面程序运行后的输出结果是()。#include <stdio.h>void main() { int s = 0, n; for(n = 0; n < 3; n++) { switch(s) { case 0: case 1:s += 1; case 2:s += 2; break; case 3:s += 3; default: s += 4; } printf(“%d”, s); } }
答案: 31014
14、 void main(){ int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf(“%f”,&score); sum+=score; } ave=sum/4.0; printf(“NO%d:%f”,n,ave); }}上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。
答案: sum=0.0;
15、 分析程序执行过程,x的值为( )。 void main() { int x,y; for(x=1,y=1;x<=50;x++) { if(y>=15) break; if(y%5==1) { y+=5; continue; } y-=2; } printf(“%d”,x); }
答案: 4
16、 设x和y均为int型变量,则执行下的循环后,y值为 for(y=1,x=1;y<=50;y++) { if(x>=8)break; if (x%2==1) { x+=5; continue;} x-=3; }
答案: 4
17、 设j为int型变量,则下面for循环语句的执行结果是 for( j=9;j>3;j–) { if(j%3)break; –j; –j; } printf(“%d”,j);
答案: 3
18、 请读程序片段: int a,b; for(a=1,b=1; a<=80; a++) { if(b>=20) break; if(b%2==1) { b+=2; continue; } b-=6; } printf(“%d”,a);上面程序的输出结果是
答案: 11
19、 请读程序片段: int a,b; for(a=1,b=1; a<=80; a++,b++) { if(b<20) continue; if(b%2==1) { b+=2; break; } } printf(“%d”,a);上面程序的输出结果是
答案: 21
20、 设j为int型变量,则下面for循环语句的执行结果是 for( j=9;j>3;j–); { j-=2; } printf(“%d”,j);
答案: 1
21、 如下程序中实现sum=1+2+3+…+n的程序是
答案: int sum=0,i;for(i=1;i<=n;i++) sum+=i;
22、 假设整型变量n,m,i已经声明和赋值,且大于n>2.有如下运算规则:如果n是素数,m=0;否则,m=n。如下程序中正确实现此运算的是
答案: m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;break; }
23、 使用穷举法求解如下(1)(2)构成的方程组(1)x+y=100;(2)2x+y/3=100;如下程序中正确的是
答案: int x,y; for(x=1;x<100;x++){ for(y=1;y<100;y++){ if(x+y==100&& 6x+y==300){ printf(“x=%d,y=%d”,x,y); } } }
24、 如下程序计算10名同学,每位同学4门课程的总分,并输出void main(){ int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf(“%f”,&score); sum+=score; } ave=sum/4.0; printf(“NO%d:%f”,n,ave); }}上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。
答案: sum=0.0;
第6周 集合数据及其处理 本周测试
1、 以下不正确的语句是__。
答案: int y[]={0,1,3,5,7,9};
2、 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是__。
答案: 3
3、 引用数组元素时,数组下标可以是____
答案: 值在[0,n-1]之间的整型表达式,其中n为数组长度
4、 定义了一维int型数组a[10]后,下面错误的引用是_____
答案: a[10]=2;
5、 若有说明:int a[3][4];则对a数组元素的非法引用是__
答案: a[0][4]
6、 以下能对二维数组a进行正确初始化的语句是__。
答案: int a[][4]={{1,2,3},{4,5},{6}};
7、 若二维数组a有m列,则在a[i][j]前的元素个数为__。
答案: i*m+j
8、 若有说明语句:int a[][3]={1,2,3,4,5,6,7,8};则a数组的行数是
答案: 3
9、 定义如下变量和数组: int k; int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是__。 for(k=0;k<3;k++) printf(“%d “,a[k][2-k]);
答案: 3 5 7
10、 下面程序的运行结果是__int main(){ int a[6],i; for(i=1;i<6;i++) { a[i]=9(i-2+4(i>3))%5; printf(“%2d”,a[i]); } return 0;}
答案: -4 0 4 4 3
11、 定义如下的变量和数组int i;int y[2][3]={2,4,6,8,10,12}则下面语句输出结果for(i=0;i<2;i++)printf(“%d “,y[1-i][i+1]);
答案: 10 6
12、 以下程序段给数组所有的元素的输入数据,请选择正确的答案#include<stdio.h>main(){float x[5],m=0;while(m<5)scanf(“%.2f”,______);}
答案: &x[m++]
13、 要求下面的程序运行后,显示如下结果:2 10 4 61 5 2 32 4 7 85 1 3 2则程序中的划线处应填入_.#include <stdio.h>void main( ){ int a[4][4]={_}; int i,j; for(i=0;i<4;i++) {for(j=0;j<4;j++) printf(“%4d”,a[i][j]); printf(“”);}
答案: {2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
14、 执行下面的程序段后,变量a中的值为int a=3, s[5]={1};s[0]=a;a=s[2]*10;
答案: 0
15、 执行下面的程序段后,变量a中的值为int a=3, s[5]={1,2};s[0]=a;a=s[2]*10;
答案: 0
16、 下列程序执行后的输出结果是int a[3][3]={1,2,3,4,5,6,7,8,9};printf(“%d “,a[1][2]);
答案: 6
17、 下列程序执行后的输出结果是int a[10]={1,2,3,4,5,6,7,8,9,10};putchar(a[1]+’a’);
答案: c
18、 以下定义一维数组语句中错误的是
答案: int a[5]=”012345″;
19、 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ printf(“%3d”,i); } } return 0;}
答案: 3 4
20、 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7,8},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ a[i]=a[i+1]; } } for(i=0;i<10;i++) printf(“%2d”,a[i]); return 0;}
答案: 1 2 2 3 4 4 5 6 7 8
21、 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7,8},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ a[i]=a[i+1]; i–; } } for(i=0;i<10;i++) printf(“%2d”,a[i]); return 0;}
答案: 死循环
22、 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7,8},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ int j; for(j=i;j<10-1;j++) a[j]=a[j+1]; i–; } } for(i=0;i<10;i++) printf(“%2d”,a[i]); return 0;}
答案: 1 2 2 4 5 6 7 8 8 8
23、 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7,8},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ int j=10-1; while(j>i){ a[j+1]=a[j]; j–; } } } for(i=0;i<10;i++) printf(“%2d”,a[i]); return 0;}
答案: 1 2 2 3 3 3 4 4 5 6 7 8
24、 如下程序的输出结果是int main(){ int a[3][4]={1,2,3,4,5,6,7,8,9}; int i; for(i=0;i<3;i++) { int j=0; for(j=0;j<3;j++){ if(a[i][3]>a[i][j]) a[i][3]=a[i][j]; } } for(i=0;i<3;i++) printf(“%2d”,a[i][3]); return 0;}
答案: 1 5 0
25、 如下程序的输出结果是int main(){ int a[3][4]={{1,2,3},{4,5,6},{7,8,9}}; int i; for(i=0;i<3;i++) { int j=0; for(j=0;j<3;j++){ a[i][3]+=a[i][j]; } } for(i=0;i<3;i++) printf(“%5d”,a[i][3]); return 0;}
答案: 6 15 24
第7周 字符数据处理 本周测试
1、 以下不正确的语句是__。
答案: int y[5]={0,1,3,5,7,9};
2、 下面错误的初始化语句是_____
答案: char str[]={‘hello’};
3、 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是__。
答案: 3
4、 引用数组元素时,数组下标可以是_____
答案: 可以为整型常量、整型变量、整型表达式,且要求大于等于0,小于等于数组长度减一
5、 若有以下说明:int x[9]={1,2,3,4,5,6,7,8,9}; char c=’a’,d,f;则数值为3的表达式是( )
答案: x[‘c’-c]
6、 已有定义:char a[]=”xyz”,b[]={‘x’,’y’,’z’};,以下叙述中正确的是
答案: a数组长度大于b数组长度
7、 定义了一维int型数组a[10]后,下面错误的引用是_____。
答案: a[10]=2;
8、 若有说明:int a[3][4];则对a数组元素的非法引用是__
答案: a[0][4]
9、 以下能对二维数组a进行正确初始化的语句是__。
答案: int a[][4]={{1,2,3},{4,5},{6}};
10、 若二维数组a有m列,则在a[i][j]前的元素个数为__。
答案: i*m+j
11、 若有语句:int a[][3]={{1,2},{3,4,5},{6},{7,8}};则a数组的行数是
答案: 4
12、 定义如下变量和数组: int k; int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是__。for(k=0;k<3;k++) printf(“%d “,a[k][2-k]);
答案: 3 5 7
13、 下面程序的运行结果是__。 main() { int a[6],i; for(i=1;i<6;i++) { a[i]=9(i-2+4(i>3))%5; printf(“%2d”,a[i]); }}
答案: -4 0 4 4 3
14、 下面程序的运行结果是__。 main() { int a[6][6],i,j; for(i=1;i<6;i++) for(j=1;j<6;j++) a[i][j]=(i/j)*(j/i); for(i=1;i<6;i++) { for(j=1;j<6;j++) printf(“%2d”,a[i][j]); printf(“”);}}
答案: 1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 1
15、 定义如下的变量和数组int I;int y[2][3]={2,4,6,8,10,12}则下面语句输出结果for(I=0;I<2;I++)printf(“%d,”,y[1-I][I+1]);
答案: 10,6
16、 以下程序段给数组所有的元素的输入数据,请选择正确的答案#include<stdio.h>main(){float x[5];int m=0;while(m<5)scanf(“%f”,______);}
答案: &x[m++]
17、 定义如下变量和数组int m;int a[2][2]={1,2,3,4};则下面语句的输出结果是for(m=0;m<2;m++;)printf(“%d,”,a[m][1-m]);
答案: 2,3
18、 下面程序的运行结果是__。 #include “stdio.h” #include “string.h” main() { char a[80]=”AB”,b[80]=”LMNP”; int i=0; strcat(a,b); while(a[i++]!=’\0′) b[i]=a[i]; puts(b);}
答案: LBLMNP
19、 下面程序段的运行结果是char x[5]={‘a’,’b’,’\0’,’c’,’\0′};printf(“%s”,x);
答案: ab
20、 #include<stdio.h>main(){int A[2][3]={1,3,5};printf(“%d”,A[1][1]);}上述程序的输出结果为____。
答案: 0
21、 要求下面的程序运行后,显示如下结果:2 10 4 61 5 2 32 4 7 85 1 3 2则程序中的划线处应填入_.#include <stdio.h>void main( ){ int a[4][4]={_}; int i,j; for(i=0;i<4;i++) {for(j=0;j<4;j++) printf(“%4d”,a[i][j]); printf(“”);}
答案: {2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
22、 有以下程序int main(){char a[]={‘1’, ‘2’, ‘3’}, b[10]={‘1’, ‘2’, ‘3’};printf(“%d %d”, strlen(a), strlen(b));return 0;}以下叙述中正确的是
答案: 在给a和b数组置初值时,对于没给初值的元素,自动赋值为0,故输出的长度都为3
23、 执行下面的程序段后,输出结果为多少char a[]={‘1’, ‘2’, ‘3’}, b[10]={‘1’, ‘2’, ‘3’};printf(“%d,%d”, sizeof(a), sizeof(b));
答案: 3,10
24、 有以下程序int main(){char a[]={1,2,3}, b[]={“123”};printf(“%s %s”, a, b);return 0;}
答案: 数组a长度小于数组b的长度
25、 有以下程序int main(){char a[100]=”Hi”,char b[]=”NEU”;strcat(a,b);printf(“%d”,strlen(a));return 0;}输出结果为
答案: 5
26、 以下程序int main(){ char words[][30]={“Hi”,”NEU”,”C”,”Programming”}; int i=0; for(i=1;i<=3;i++){ printf(“%s”,words[i]); }return 0;}
答案: NEUCProgramming
27、 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7},i,j; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ for(j=i;j<9;j++) a[j]=a[j+1]; } } printf(“%d”,a[5]); return 0;}
答案: 5
28、 如下程序的输出结果是int main(){ int a[10]={1,2,3,3,4,5,6,7,8},i,j; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ for(j=i;j<9;j++) a[j+1]=a[j]; } } printf(“%d”,a[5]);}
答案: 3
29、 如下程序的输出结果是int main(){ char books[][20]={“English”,”Math”,”Physical”}; int i,j; for(i=0;i<3;i++) { strcat(books[i],”book”); } printf(“%s”,&books[i-1][3]); return 0;}
答案: sicalbook
30、 如下程序的输出结果是int main(){ char books[][20]={“English”,”Math”,”Physical”}; int i,j; for(i=0;i<3;i++) { for(j=0;books[i][j]!=0;j++){ if(books[i][0]<books[i][j]) books[i][0]= books[i][j]; } } printf(“%c”,books[0][0]); return 0;}
答案: s
下方是付费阅读内容:本平台商品均为虚拟商品,无法用作二次销售,不支持退换货,请在购买前确认您需要购买的资料准确无误后再购买,望知悉!
完整答案需点击上方按钮支付5元购买,所有答案均为章节测试答案,购买后上方矩形框将出现已付费的隐藏内容。
,
第8周 函数实现代码分解和重用 本周测试
1、 以下关于return语句的叙述中正确的是
答案: 一个自定义函数中可以根据不同情况设置多条return语句
2、 有以下程序#include <stdio.h>void fun(int p){ int d=2; p=d++; printf(“%d”,p);}void main(){int a=1;fun(a);printf(“%d”,a);}程序运行后的输出结果是
答案: 21
3、 下面说法不属于说明函数的作用是
答案: 提高程序效率
4、 如下合法的函数定义
答案: int mfun(int a,int b){return a+b;}
5、 6 下面关于函数声明正确的说法
答案: 方便编译,避免编译错误
6、 如果定义了如下函数,int isprime(int n){ //略}此函数的不正确的声明语句是
答案: isprime(int n){};
7、 函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。void main(){ printf(“The sum=%d”,sum (10));}int sum(int n){ int s=0,i; for(i=0;i<=n;i++) ______}
答案: s=s+i;return s;
8、 一个c程序的执行是从__
答案: 本程序的main函数开始,到main函数结束
9、 设函数fun的定义形式为:fun(char ch,float x){//略}则以下对函数fun的调用语句中正确的是______。
答案: t=fun(‘D’,5)
10、 若程序中定义了以下函数double myadd(double a,double b){ return (a+b) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行声明,以下选项中错误的声明语句是
答案: double myadd(double a,b) ;
11、 有以下程序int fun(int x , int y){ if(x<y) return x; return y;}void main( ){ int a= 9,b=8,c=7; printf(“%d”, fun(a,b) );}程序的执行结果是
答案: 8
12、 有以下程序void f(int v , int w){ int t; t=v;v=w;w=t;}main( ){ int x=1,y=2,z=3; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf(“%d,%d,%d”,x,y,z);}执行后输出结果是
答案: 1,2,3
13、 以下正确的函数定义是
答案: double funl(int x,int y){double z;z=x+y;return z;}
14、 C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是
答案: int
15、 以下程序段结果是int f1(int x){int z=3,y=0;y++;z++;return(x+y+z);}void main(){int a=1,k;for(k=0;k<3;k++) printf(“%4d”,f1(a));}
答案: 6 6 6
16、 以下程序段结果是int f1(int x){int z=3,y=0;y++;z++;return(x+y+z);}void main(){int a=1,k;for(k=0;k<3;k++) printf(“%4d”,f1(k));}
答案: 5 6 7
17、 如下程序的运行结果是()int f1(int x){ x=x+10; return x;}void main(){ int a=1,k; for(k=0;k<3;k++) { f1(k); printf(“%4d”,k); }}
答案: 0 1 2
18、 有以下程序int f(int a){ return a%2;}main(){ int s[8]={1,3,5,2,4,6},i,d=0; for (i=0;f(s[i]);i++) d+=s[i]; printf(“%d”,d);}程序运行后的输出结果是
答案: 9
19、 有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是
答案: fun(10,12.5);
20、 有以下程序int swap(int a,int b){ int t=a; a=b; b=t; return t;}void main(){ int t=0; t=swap(swap(3,5),6); printf(“%d”,t);}程序运行后的输出结果是
答案: 3
第9周 递归及函数结构 本周测试
1、 如果一个函数被定义为static类型,那么_____。
答案: 该函数能被当前源文件的函数调用,但不能被其他文件的函数调用
2、 下面关于局部变量的描述中,错误的是_____。
答案: 不同的函数中不能定义相同名称的局部变量
3、 函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。int sum(int n){ int s=0,i; for(i=0;i<=n;i++) ______}void main(){ printf(“The sum=%d”,sum (10));}从备选答案中选择一答案,补全程序。
答案: s=s+i;return s;
4、 下面的描述错误的是_____。
答案: 函数内可以嵌套定义函数
5、 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为
答案: 自动
6、 以下不正确的说法为
答案: 在函数内的复合语句中定义的变量在本函数范围内有效
7、 一个c程序的执行是从__
答案: 本程序的main函数开始,到main函数结束
8、 设函数fun的定义形式为:fun(char ch,float x){…}则以下对函数fun的调用语句中正确的是______。
答案: t=fun(‘D’,5)
9、 若程序中定义了以下函数double myadd(double a,double b){ return (a+b) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行声明,以下选项中错误的函数声明是
答案: double myadd(double a,b) ;
10、 、有以下程序int fun(int x , int y){ if(x<y) return x; return y;}void main( ){ int a= 9,b=8,c=7; printf(“%d”, fun(a,b));}程序的执行结果是
答案: 8
11、 有以下程序void f(int v , int w){int t; t=v;v=w;w=t;}main( ){ int x=1,y=2,z=3; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf(“%d,%d,%d”,x,y,z);}执行后输出结果是
答案: 1,2,3
12、 设函数fun的定义形式为int fun(int a[],int n){ int s=0,i=0; for(i=0;i<n;i++)s+=a[i]; return s;}void main(){int a[10]={1,2,3,4,5};printf(“%d”, fun(&a[1],2));}则程序的运行结果为
答案: 5
13、 下面关于全局变量的描述中,错误的是_____
答案: 全局变量第一次被引用时,系统为其分配内存
14、 以下叙述中正确的是
答案: 同一函数内的static类型局部变量比auto类型的局部变量的生存期长。
15、 以下正确的函数声明语句是_。
答案: double fun();
16、 以下正确的函数定义是
答案: double funl(int x,int y){double z;z=x+y;return z;}
17、 C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是
答案: int
18、 有以下程序int fun(int a){return a%2;}main(){ int a[8]={1,3,2,4},i,d=0; for (i=0;fun(a[i]);i++) d+=a[i]; printf(“%d”,d);}程序运行后的输出结果是
答案: 4
19、 以下程序段结果是f1(int x){static int z=3,y=0;y++;z++;return(x+y+z);}void main(){int a=1,k;for(k=0;k<3;k++)printf(“%4d”,f1(a));}
答案: 6 8 10
20、 有以下程序int fun(char a[],char b[]){ int i=0; while(a[i]=b[i])i++; return i;}main(){ char s[100]=”Hello”,t[20]=”Hi”; fun(s,t); printf(“%s”,s);}程序运行后的输出结果是
答案: Hi
21、 有以下程序int fun(char a[],char b[]){ int i=0; while(a[i]=b[i])i++; return i;}main(){ char s[100]=”English”,t[20]=”Hi”; fun(s,t); printf(“%c”,s[3]);}程序运行后的输出结果是
答案: l
22、 有以下程序int fun(char a[],char b[]){ int i=0; while(a[i]=b[i++])i++; return i;}main(){ char s[100]=”book”,t[20]=”English”; fun(s,t); printf(“%s”,s);}程序运行后的输出结果是
答案: Eogki
23、 有以下程序int fun(char a[],char b[]){ int i=0,j=0; while(a[i++]); while(a[i++]=b[j++]);}main(){ char s[100]=”book”,t[20]=”English”; fun(s,t); printf(“%s”,s);}程序运行后的输出结果是
答案: book
24、 有以下程序int fun(char a[],char b[]){ int i=0,j=0; while(a[i++]=b[j++]);}main(){ char s[][100]={“English”,”math”,”physical”,”Chinese”}; fun(s[1],s[2]); printf(“%s”,s[1]);}程序运行后的输出结果是
答案: physical
25、 有以下程序int fun(char a[]){ int i=0,j=0; while(a[i])i++; for(;i<10;i++) a[i]=’-‘;}main(){ char s[][10]={“English”,”math”,”physical”,”Chinese”}; fun(s[0]); printf(“%s”,s[0]);}程序运行后的输出结果是
答案: English—math
26、 有以下程序int fun(char a[]){ int i=0,j=0; while(a[i++]); for(;i<10;i++) a[i]=’-‘;}main(){ char s[][10]={“English”,”math”,”physical”,”Chinese”}; fun(s[0]); printf(“%s”,s[0]);}程序运行后的输出结果是
答案: English
第10周 内存地址及其指针 本周测验
1、 设有如下一段程序:intvar,ab;ab=100var=&ab;ab=var+10;执行上面的程序后,ab的值为
答案: 110
2、 若在定义语句:int a,b,*p=&b;之后,接着执行以下选项中的语句,则能正确执行的语句是
答案: scanf(“%d”,p);
3、 设有如下一段程序:intp,a,b;a=10;p=&b;p=&a;a=p+10;执行上面的程序后,a的值为
答案: 20
4、 设有如下一段程序:intp,a,b;a=10;p=&a;p=&b;a=p+10;执行上面的程序后,a的值为
答案: 不确定
5、 设有如下一段程序:intpa,pb,a=10,b=20;pa=&a,pb=&b;pb=pa;a=*pa+10;执行上面的程序后,a的值为
答案: 20
6、 设有如下一段程序:intpa,pb,a=10,b=20;pa=&a,pb=&b;pa=pb;a=*pa+10;执行上面的程序后,a的值为
答案: 30
7、 设有如下一段程序:intpa,pb,a=10,b=20;pb=&b;pa=a;a=b;b=pa;执行上面的程序后,a的值为
答案: 程序出错
8、 设有如下一段程序:intpa,pb,a=10,b=20;pa=&a;pa=a;a=b;b=pa;执行上面的程序后,a的值为
答案: 20
9、 如下指针变量声明语句正确的是
答案: int a=10,b=20,pa=&a,*pb=&b;
10、 若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是
答案: pb=&x
11、 下列程序的输出结果是void main( ){int a[5]={2,4,6,8,10},p;p=a; printf(“%d”,(p++)); }
答案: 2
12、 下列程序的输出结果是void main( ){int a[5]={2,4,6,8,10},p;p=a; printf(“%d”,(++a)); }
答案: 程序出错
13、 执行以下程序后,y的值是void main ( ){int a[]={2,4,6,8,10};int y=1,x,p;p=&a[1];for(x=0;x<3;x++)y + =(p + x);printf(“%d”,y); }
答案: 18
14、 设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};intp=a[0];则下列能够正确表示数组元素a[1][2]的表达式是
答案: (p+5)
15、 设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};intp=a[2];则下列能够正确表示数组元素a[1][2]的表达式是
答案: (p-1)
16、 设有定义语句int x[6]={2,4,6,8,5,7},p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是
答案: for(i=0;i<6;i++) printf(“%2d”,(p)++);
17、 设有定义语句int x[6]={2,4,6,8,5,7},p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是
答案: for(i=0;i<6;i++) printf(“%2d”,x++);
18、 下面程序输出数组中的最大值,由s指针指向该元素.void main(){ int a[10]={6,7,2,9,1,10,5,8,4,3,},p,s; for(p=a, s=a; p-a<10; p++) if(_)s=p; printf(“Max=%d”,s):}则在if语句中的判断表达式应该是
答案: p>*s
19、 若有以下定义和语句:int b[10]={1,2,3,4,5,6,7,8,9,10},p=b;则不能表示b数组元素的表达式是
答案: b[10]
第11周 指针的应用 本周测试
1、 设有定义:double x[100],p=x;,以下能给数组x下标为6的元素读入数据的正确语句是
答案: scanf(“%lf”,p+6);
2、 有以下程序void fun(ints){ while(s) { if(s%2) printf(“%d”,s); s++; }}main(){ int a[8]={7,6,5,4,3}; fun(a); printf(“”);}程序运行后的输出结果是
答案: 753
3、 有以下程序void fun(charc){ while(c) { if(c>=’a’&&c<=’z’) c=c-(‘a’-‘A’);c++; }}main(){char s[81];gets(s);fun(s);puts(s);}当执行程序时从键盘上输入Hi Neu<回车>,则程序的输出结果是
答案: HI NEU
4、 设有如下的程序段:char str[ ]=”Hello”;charptr;ptr=str;执行上面的程序段后,(ptr+5)的值为
答案: ‘\0’
5、 设有如下程序:#include<stdio.h>void main(){intk, *j, i=100;j=&i; k=&j;printf(“%d”,k);}上面程序的输出结果是
答案: 100
6、 请选出以下程序的输出结果#include<stdio.h>sub(int x,int y,intz){z=y-x; }main(){int a, b, c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(“%d,%d,%d”, a,b,c);}
答案: -5,-12,-7
7、 有以下程序#include<stdio.h>main(){ int a[]= {1,2,3,4,5,6,7,8,9,10,11,12,},p=a+5,q=NULL; q=(p+5); printf(“%d %d”,p,q);}程序运行后的输出结果是
答案: 运行后报错
8、 设有如下函数定义:int f(chars){charp=s;while(*p!=’\0′) p++;return(p-s); }如果在主程序中用下面的语句调用上述函数,则输出结果为printf(“%d”,f(“goodbey!”));
答案: 9
9、 设有如下定义: char *aa[2]={“abcd”,”ABCD”}; 则以下就法中正确的是
答案: aa数组的两个元素分别存放字符串常量的首地址
10、 下列程序的输出结果是main( ){char *p2,str[50]=”NEU”;char p1[10]=”abcd”;p2=”ABCD”;strcpy(str+2,strcat(p1+2,p2+1));printf(“%s”,str);}
答案: NEcdBCD
11、 以下程序段 char *alp[]={“ABC”,”DEF”,”GHI”}; int j; puts(alp[1]);的输出结果是()。
答案: DEF
12、 若已定义:int a[4][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, (prt )[3] = a,p = a[0];则能够正确表示数组元素a[1][2]的表达式是
答案: (*(a + 1) + 2)
13、 以下程序的输出结果是void fun(floata, floatb){ float w; a =a +a; w =a; a =b; b = w;}main(){ float x = 2.0,y = 3.0; floatpx = &x, *py = &y; fun(px, py); printf(“%2.0f,%2.0f”, x, y);}
答案: 3, 4
14、 以下程序的输出结果是main(){ int a[] = {2, 4, 6, 8, 10}, y = 1, x,p; p = &a[1]; for(x = 0; x < 3; x++) y +=(p + x); printf(“%d”, y);}
答案: 19
15、 下面程序char * fun1(chart,chars){ while(t=s){s++,t++;} return t;}int main(){ char a[100]=”Hello”; char b[20]=”NEU”; char *t=NULL; t=fun1(a,b); printf(“%s”,t);}执行结果为
答案: 输出为空
16、 下面程序char * fun2(chart,chars){ while(t=s){s++,t++;} return t;}int main(){ char a[100]=”Hello”; char b[10]=”NEU”; fun2(a,b); printf(“%s”,a);}
答案: NEU
17、 下面程序char * fun1(chart,chars){ while(t++=s++); return *t;}int main(){ char a[100]=”Hello”; char b[20]=”NEU”; fun1(a,b); printf(“%s”,b);}执行结果为
答案: NEU
18、 下面程序char * fun2(chart,chars){ while(t++); while(t++=s++); returnt;}int main(){ char a[100]=”Hello”; char b[20]=”NEU”; char *t= fun2(a,b); printf(“%s”,a);}执行结果为
答案: Hello
第12周 复杂对象描述与结构体 本周测验
1、 关于结构体说法不正确的是
答案: 结构体必须在函数外部定义
2、 对于如下结构体定义struct student{int id;char name[32];}s1;如下说法正确的是
答案: struct student 为数据类型
3、 对于如下结构体定义typedef struct student{int id;char name[32];}Student;如下说法正确的是
答案: Student为数据类型
4、 对于如下结构体定义struct student{int id;char name[32];}s1;如下说法不正确的是
答案: scanf(“%s”,&s1.name)实现给name成员赋值
5、 对于如下结构体定义struct student{int id;char name[32];}s1,p;若令p=&s1,则如下说法不正确的是
答案: scanf(“%s”,p.name)实现给name成员赋值
6、 对于如下结构体定义struct student{int id;char name[32];}s1={100,”zhao”};如下说法正确的是
答案: 表达式sizeof(s1)的值为36
7、 对于如下结构体定义struct student{int id;char name[32];struct { unsigned int y; unsigned int m; unsigned int d;} birthday;}s1={100,”zhao”,{1999,10,1}};如下说法正确的是
答案: 表达式sizeof(s1.birthday)的值为12
8、 对于如下结构体定义struct student{int id;char name[32];union { char c; int g; float f;} grade;}s1={100,”zhao”,{‘A’}}如下说法正确的是
答案: 表达式sizeof(s1.grade)的值为4
9、 对于如下结构体定义struct student{int id;char name[32];union { char c; int g; float f;} grade;}s1={100,”zhao”,{‘A’}}如下说法不正确的是
答案: s1.grade.g的值为0
10、 对于如下语句struct point { float x,y,z; }p1={1,2,3},p2,p3; p2=p1;如下说法正确的是
答案: printf(“%f”,p2.x)的输出结果为1.000000
11、 下面程序struct point{ float x,y,z;};struct point mid(struct point p1,struct point p2) { struct point m; m.x=(p1.x+p2.x)/2; m.y=(p1.y+p2.y)/2; m.z=(p1.z+p2.z)/2; return m;}int main(){ struct point p1={1,2,3},p2,p3={0,0,0};; p2=p1; p3=mid(p1,p2); printf(“%f”,p3.x);}执行结果为
答案: 1.000000
12、 下面程序struct point{ float x,y,z;};void swap(struct point p1,struct point p2) { struct point m; m=p1,p1=p2,p2=m;}int main(){ struct point p1={1,2,3},p2={0,0,0}; swap(p1,p2); printf(“%f”,p2.x);}
答案: 0.000000
13、 下面程序struct point{ float x,y,z;};void swap(struct pointp1,struct pointp2) { struct point *m; m=p1,p1=p2,p2=m;}int main(){ struct point p1={1,2,3},p2={0,0,0}; swap(&p1,&p2); printf(“%f”,p2.x);}执行结果为
答案: 0.000000
14、 下面程序struct student{int id;char name[32];union { char c; int g; float f;} grade;}s1={100,”zhao”,{‘A’}};int main(){ struct student s1={20200001,”Joe”,’A’},s2={20200001,”Li”,65}; struct student p; p=s1; printf(“%s”,p.name);}执行结果为
答案: Joe
15、 下面程序struct point{ float x,y,z;};int main(){ struct point points[5]={{1,0,0}}; printf(“%f”,points[1].x);}执行结果为
答案: 0.000000
16、 下面程序struct point{ float x,y,z;};int main(){ struct point points[5]={{1,0,0}}; printf(“%f”,points->x);}执行结果为
答案: 1.000000
17、 如下程序段 enum direction{left,right,up,down}; enum direction a=left; printf(“%d”,a);输出结果为
答案: 0
18、 如下程序段enum direction{left=10,right,up,down}; enum direction a=left; printf(“%d”,a);输出结果为
答案: 10
19、 如下程序段 enum direction{left=10,right,up,down}; enum direction a=left; int d = left+right; printf(“%d”,d);输出结果为
答案: 21
20、 如下程序段 enum direction{left=10,right,up,down}; typedef enum direction Direction; Direction d=up; printf(“%d”,d++);输出结果为
答案: 12
第13周 链表及其处理 本周测验
1、 关于如下结构体说法正确的是struct node{ int id; struct node next;};
答案: 此结构体定义存在错误
2、 关于如下结构体struct node{ int id; struct node *next;};说法不正确的是
答案: 结构体标识符node可以省略
3、 关于如下语句,说法不正确的是union node{ int id; union node *next;};
答案: union node可以用于定义链表
4、 关于如下语句,说法不正确的是struct node{ int id; struct nodenext;}list,n;
答案: n 为结构体指针变量,可以存储节点地址
5、 对于如下结构体定义struct node{ int id; struct nodenext;}a;若声明如下变量struct nodep;在32位系统中,不能实现创建链表节点的操作是
答案: p=(node*)malloc(sizeof(node));
6、 对于如下语句struct node{ int id; struct nodenext;}p;p=(struct node)malloc(sizeof(struct node)10);如下说法正确的是
答案: (*p).id=10实现给首节点的id成员赋值
7、 对于如下结构体定义struct node{ int id; struct node *next;};假设list存储链表首地址,p当前的链表的某节点,q为p前一个节点,也就是说q->next = p如下说法正确的是
答案: 表达式 q->next=p->next,free(p)实现删除节点p
8、 对于如下结构体定义struct node{ int id; struct nodenext;}list,p;有如下函数定义void fun(struct nodep){ while(p->next!=NULL) { printf(“%d”,p->id); p=p->next; }}若将单向链表首地址传给fun,如下说法正确的是
答案: fun函数可以实现输出链表中所有节点的id信息
9、 设有以下语句typedef struct{ int n; char ch[8];}MYTYPE;则下面叙述中正确的是
答案: MYTYPE是结构体类型名
10、 对于如下语句typedef struct mytype{ int n; char ch[8];}MYTYPE;如下说法正确的是
答案: MYTYPE是 struct mytype*类型别名
11、 设有如下定义:struct sk{int a;float b;}data,p;若有p=&data;,则对data中的a域的正确引用是
答案: (p).a
12、 对于如下结构体struct point{float x,y;};声明如下变量struct point p1={1,2},p2={3,4},s,p;如下说法正确的是
答案: 表达式(p=&p1,p=p2)结果为{3,4}
13、 对于如下结构体struct point{float x,y;};如下语句执行后输出结果为struct point p1={1,2},p2={3,4},t,q;t=(struct point*)malloc(sizeof(struct point));memcpy(t,&p1,sizeof(struct point)); //memcpy从源内存地址&p1的起始位置开始拷贝若干个字节到目标内存地址t中printf(“%.0f”,t->x);
答案: 1
14、 如下共用体union var{ char c; int d; float f; double e; char str[128];};声明如下变量union var x;如下说法正确的是
答案: 可以存储char、int、float、double类型数据或不超过127个ASCII字符的字符串
15、 结构体struct node{ int id; struct node *next;};定义了链表list假设p为其中一个节点;如果在p后插入节点w,如下操作正确的是
答案: w->next=p->next,p->next=w;
第14周 预编译处理 本周测试
1、 对于如下程序#define CT 1+2int main(){printf(“%d”,CT);return 0;}输出结果为
答案: 3
2、 对于如下程序#define CT “1+2″int main(){printf(“%s”,CT);return 0;}输出结果为
答案: 1+2
3、 对于如下程序#define CT 2-1int main(){printf(“%d”,CT*CT);return 0;}输出结果为
答案: -1
4、 对于如下程序#define CT (2-1)int main(){printf(“%d”,CT*CT);return 0;}输出结果为
答案: 1
5、 对于如下程序#define CT 3>4int main(){printf(“%d”,CT);return 0;}输出结果为
答案: 0
6、 对于如下程序#define CT 3>4#define CE CT3:4int main(){printf(“%d”,CE);return 0;}输出结果为
答案: 4
7、 对于如下程序#define SUM for(i=0;i<=10;i++)s=s+i;int main(){int i=0,s=0;SUMprintf(“%d”,s);return 0;}输出结果为
答案: 55
8、 对于如下程序#define IF if(a<b)t=a;int main(){int a=3,b=4,t=0;IF { a=b; b=t;}printf(“%d”,a);return 0;}输出结果为
答案: 4
9、 对于如下程序#define MAX(a,b) a>ba:bint main(){int a=3,b=4,t=0;t=MAX(a,b);printf(“%d”,t);return 0;}输出结果为
答案: 4
10、 对于如下程序#define SWAP(a,b) {int t;t=a;a=b;b=t;}int main(){int a=3,b=4;SWAP(a,b);printf(“%d”,a);return 0;}输出结果为
答案: 4
11、 对于如下程序#define SWAP(a,b) {int t;t=a;a=b;b=t;}int main(){int a=3,b=4,t;t=SWAP(a,b);printf(“%d”,a);return 0;}输出结果为
答案: 存在语法错误
12、 对于如下程序#define ADD(a,b) a=a+bint main(){int a=3,b=4,t=0;t=ADD(a,b);printf(“%d”,t);return 0;}
答案: 7
13、 对于如下程序#define ADD(a,b) a=a+bint main(){int a=3,b=4,t=0;t=ADD(a,b)*ADD(a,b);printf(“%d”,t);return 0;}输出结果为
答案: 存在语法错误
14、 对于如下程序int main(){int a=3,b=4,t=0;#ifdef MAXt=a;if(a>b)t=a;#endifprintf(“%d”,t);}输出结果为
答案: 0
15、 对于如下程序#define MAXint main(){int a=3,b=4,t=0;#ifdef MAXt=a;if(a<b)t=b;#endifprintf(“%d”,t);}输出结果为
答案: 4
16、 对于如下程序int main(){int a=3,b=4,t=0;#ifdef MAXt=a;if(a<b)t=b;#elset=a;if(a>b)t=b;#endifprintf(“%d”,t);}输出结果为
答案: 3
17、 如下说法不正确的是
答案: 宏支持参数,其参数传递机制与函数的参数传递机制一致,均遵循值拷贝机制
18、 如下说法正确的是
答案: 宏可以带参数
第15周 文件与数据永久存储 本周测验
1、 如下打开文件”data.txt”操作中,实现以读模式打开文本文件的语句是
答案: fp=fopen(“data.txt”,”r”);
2、 如下打开文件”data.dat”操作中,实现以读模式二进制文件的语句是
答案: fp=fopen(“data.dat”,”rb”);
3、 如果文本文件”d:\data.txt”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\data.txt”,”w”);如下描述正确的是
答案: 文件”d:\data.txt”的内容被清空
4、 如果文本文件”d:\data.txt”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\data.txt”,”r”);如下描述正确的是
答案: 文件打开成功,后面可以执行读操作
5、 如果文本文件”d:\data.txt”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\data.txt”,”a”);如下描述正确的是
答案: 文件”d:\data.txt”的内容不动,之后的写操作,将从文件末尾开始写
6、 如果二进制文件”d:\data.dat”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\data.dat”,”a”);如下描述正确的是
答案: 此语句函数fopen调用错误
7、 如果二进制文件”d:\data.dat”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\data.dat”,”wb”);如下描述正确的是
答案: 文件”d:\data.dat”的内容被清空
8、 如下标准设备中,属于键盘的是
答案: stdin
9、 如下语句中不能实现向屏幕输出文本“hello”的是
答案: printf(stdout,”%s”,”hello”);
10、 关于fclose函数的说法,如下描述正确的是
答案: fclose与fopen对应,打开的文件,完成读写操作后,必须通过fclose关闭
11、 对于如下程序#include <stdio.h>void main(){ FILE *fp; fp=fopen(“test.txt”,”w”); fprintf(fp,”%5.2f”,0.12345678); fclose(fp);}文件中的test.txt内容是
答案: 0.12
12、 文本文件中的test.txt内容如下1,2,3,5执行如下程序后,输出结果为void main(){ FILE *fp; int a,b,c; char m; fp=fopen(“g:\test.txt”,”r”); fscanf(fp,”%d%d%d%c”,&a,&b,&c,&m); printf(“a=%d,b=%d,c=%d,m=%c”,a,b,c,m); fclose(fp);}输出结果为
答案: 格式串错误。只有a成功读取值1,其他变量的值均没有读取成功
13、 对于如下程序void main(){ FILE *fp; int a=10; fp=fopen(“g:\test.dat”,”wb”); fwrite(&a,sizeof(int),1,fp); fclose(fp);}关于test.dat文件大小如下说法正确的是
答案: 4个字节
14、 对于如下程序void main(){ FILE *fp; int a[10]={0,1,2,3,4,5,6}; fp=fopen(“g:\test.dat”,”wb”); fwrite(&a,sizeof(int),5,fp); fclose(fp);}如下说法不正确的是
答案: 实现将数组a中的后5个元素的值写入到文件test.dat中
15、 对于如下程序void main(){ FILE *fp; char names[100]=”Helloworld”; char text[100]=””; fp=fopen(“g:\test.dat”,”wb”); fwrite(names,sizeof(char),strlen(names),fp); fclose(fp); fp=fopen(“g:\test.dat”,”rb”); fseek(fp,5,SEEK_CUR); fread(text,sizeof(char),5,fp); puts(text); fclose(fp);}
答案: world
16、 对于如下程序void main(){ FILE *fp; char names[100]=”Helloworld”; char text[100]=””; fp=fopen(“g:\test.dat”,”wb+”); fwrite(names,sizeof(char),strlen(names),fp); rewind(fp); fread(text,sizeof(char),5,fp); puts(text); fclose(fp);}输出结果为
答案: Hello
17、 对于如下程序void main(){ FILE *fp; char names[100]=”Helloworld”; char text[100]=””; fp=fopen(“g:\test.dat”,”wb+”); fwrite(names,sizeof(char),strlen(names),fp); rewind(fp); fwrite(“Hi123”,sizeof(char),5,fp); fread(text,sizeof(char),5,fp); puts(text); fclose(fp);}输出结果为
答案: world
点关注,不迷路,微信扫一扫下方二维码
关注我们的公众号:阿布查查 随时查看答案,网课轻松过
为了方便下次阅读,建议在浏览器添加书签收藏本网页
电脑浏览器添加/查看书签方法
1.按键盘的ctrl键+D键,收藏本页面
2.下次如何查看收藏的网页?
点击浏览器右上角-【工具】或者【收藏夹】查看收藏的网页
手机浏览器添加/查看书签方法
一、百度APP添加/查看书签方法
1.点击底部五角星收藏本网页
2.下次如何查看收藏的网页?
点击右上角【┇】-再点击【收藏中心】查看
二、其他手机浏览器添加/查看书签方法
1.点击【设置】-【添加书签】收藏本网页
2.下次如何查看收藏的网页?
点击【设置】-【书签/历史】查看收藏的网页