2024年4月25日发(作者:)
C语言程序设计期末复习模拟试题(央本)
2012春电大C语言程序设计模拟试题及解答
一、选择题
1. 由C语言源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cpp B. exe C. obj D. C
2. C语言程序的基本模块为( D )。
A. 表达式 B. 标识符 C. 语句 D. 函数
3. 设x和y均为逻辑值,则x||y为假的条件是( C )。
A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假
4. x>0 || y==5的相反表达式为( B )。
A. x<=0 || y!=5 B. x<=0 && y!=5
C. x>0 || y!=5 D. x>0 && y==5
5. 枚举类型中的每个枚举常量的值都是一个( A )。
A. 整数 B. 浮点数 C. 字符 D. 逻辑值
6. 循环体至少被执行一次的语句为( C )循环语句。
A.for -while D.任一种
7. 循环语句“for(int i=0; i A. 1 B. n-1 C. n D. n+1 8. 在下面的while循环语句中,其循环体被执行的次数为( C )。 int i=0,s=0; while(s<20) {i++; s+=i;} A. 4 B. 5 C. 6 D. 7 9.在下面的字符数组定义中,( D )语句有语法错误。 A.char a[20]=“abcdefg”; B.char a[]=“x+y=55.”; C. char a[15]={„1‟, „2‟}; D. char a[10]=‟5’; 10. 若定义了函数 double *function(), 则返回值类型为( B )。 A. 实数型 B. 实数指针型 C. 函数指针型 D. 数组型 11. 若用数组名作为函数调用的实参,传递给形参的是( A )。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组中全部元素的值 D. 数组元素的个数 12.预处理命令在程序中都是以( B )符号开头的。 A.* B.# C.& D.@ 13. 假定a为一个整型数组名,则元素a[4]的地址比该数组的首地址大( C )个字节。 A. 4 B. 8 C. 16 D. 32 14. 下列给字符数组赋初值时,正确的是( A )。 A. char s1[]="abcdef"; B. char s2[4]="abcd"; C. char s3[2][3]={"abc","xyz"}; D. char s4[4][]={'a','x','s','t'}; 15. 变量s已定义为"char *s="Heoll world!";",要使变量p指向s所指向的同一个 字符串,则应定义为( A )。 A. char *p=s; B. char *p=&s; C. char *p;p=*s; D. char *p; p=&s; 16. 要使p指向二维整型数组a[10][20],p应定义为( D )。 A. int *p=a; B. int **p=a; C. int *p[20]=a; D. int(*p)[20]=a; 17. 标准输入设备的文件流标识符是( A )。 A. stdin B. stdout C. stderr D. stdio 18. 若要以读/写操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用 的打开方式字符串为( C )。 A. "r+" B. "ab+" C. "rb+" D. "wb+" 共9页 - 1 - - 1 - C语言程序设计期末复习模拟试题(央本) 二、填空题 1. 单行或多行注释的开始标记符为 /* 。 2. C语言程序中所有预处理命令均以 # 字符开头。 3. 使用#include命令可以包含一个头文件,也可以包含一个 程序 文件。 4. 用于从键盘上变为变量输入值得标准输入函数是 sanf() 。 5. 执行“printf("%s%s%d","wei","rong",18);”语句后得到的输出结果为weirong18。 6. 十进制数25表示成符合C语言规则的八进制数为 031 。 7.执行“printf("%c",'A'+2);”语句后得到的输出结果为 C 。 8. 假定一个枚举类型的定义为“enum RA{ab,ac,ad,ae};”,则ac值为 1 。 9.short类型的大小为 2 个字节。 10. double类型的大小为 8 个字节。 11. 十进制数3.26f的类型为 float 。 12. 执行“int=45,y=13;printf(“%d”,x/y);”语句序列后得到的输出结果为 3 。 13. 假定y=10,则表达式++y*3的值为 33 。 14. 表达式x=x+y表示成复合赋值表达式为 x+y=y 。 15. 关系表达式(x==0)的等价表达式为 (!x) 。 16. 假定不允许使用逻辑非操作符,则逻辑表达式x>3 && x<10的相反表达式为 x<=3 || x>=10 。 17.若x=5,y=10,则x!=y的逻辑值为 1 。 18. 假定x=5,则执行“int a=(! X? 10:20);”语句后a的值为 20 。 19. 在if语句中,每个else关键字与它前面同层次并且最接近的 if 关键字相配套。 20. 若while循环的“头”为“while(i++<=10)”,并且i的初值为0,同时在循环体中不会 修改i的值,则循环体将被重复执行 11 次后正常结束。 21. 当在程序中执行到 contioue 语句时,将结束所在循环语句中循环体的一次执行。 22. 假定二维数组的定义为“char a[3][5];”,则该数组所含元素的个数为 15 。 23.假定二维数组的定义为“char a[M][N];”,则该数组所占存储空间的字节数为 M*N 。 24. 执行“typedef int ABC[10];”语句把ABC定义为具有10个整形元素的 数组 类型。 25. 存储字符串“a”需要占用存储器的 2 个字节空间。 26. 字符串“‟a‟xy=4n”的长度为 8 。 27. strlen函数用于计算一个字符串的 长度 。 28. strcat函数用于把一个字符串 连接 到另一个字符串之后的存储空间中。 29.函数中的形参变量的初值由调用该函数时对应的 实参 值决定。 30. 对于无返回值函数,定义函数时要用保留字 void 修饰函数类型。 31. 程序的编译是以 程序文件 为单位进行的。 32. 假定p所指向对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,p所 指向对象的值为 26 。 33. 假定a是一个一维数组,则a[i]的指针访问方式为 *(a+i) 。 34. 假定p是一个指向整数对象的指针,则用 *p 表示该整数对象。 35. 执行int *p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为 *p 。 36. 假定一个结构类型的定义为“struct C{double* a[4];int n;};”,则该类型的大小为 20 个字节。 37. 假定要动态分配一个类型为struct Worker的具有n个元素的数组,并由r指向这个动态 数组,则使用的语句表达式为 struct Worker* r =malloc(n*sizeof(struct Worker))。 38. 与结构成员访问表达式p->name等价的表达式是 (*p).name 。 共9页 - 2 - - 2 - C语言程序设计期末复习模拟试题(央本) 三、写出下列每个程序运行后的输出结果 1. #include void main() { int i, s=0; for(i=1;;i++) { if(s>50) break; if(i%2==0) s+=i; } printf("i,s=%d, %dn",i,s); } 结果:i,s=15,56 2. #include void main() { char ch='*'; int i, n=5; while(1) { for(i=0;i printf("n"); if(--n==0) break; } } 3. #include const int N=5; void main() { int i,p=1,s=0; for(i=1;i p=p*i; s=s+p; printf("%5d%5d",i,p); printf("%5dn",s); } } 4. #include void main() { int x=24,y=88; int i=2,p=1; do { while(x%i==0 && y%i==0) { p*=i; x/=i; y/=i; } i++; 共9页 - 3 - 结果 ***** **** *** ** * 结果 1 1 1 2 2 2 3 6 9 4 24 33 - 3 - C语言程序设计期末复习模拟试题(央本) } while(x>=i && y>=i); printf("%dn",p*x*y); } 结果:p*x*y=8*3*11=264 5. #include void main() { int a[9]={36,25,48,24,55,40,18,66,20}; int i, b1, b2; a[0]<=a[1]? (b1=a[0], b2=a[1]):(b1=a[1],b2=a[0]); for(i=2; i<9; i++) if(a[i] else if(a[i] printf("%d %dn",b1,b2); } 结果:18 20 6. #include void main() { int a[12]={76,63,54,62,40,75,80,92,77,84,44,73}; int b[4]={60,70,90,101}; int c[4]={0}; int i,j; for(i=0;i<12;i++) { j=0; while(a[i]>=b[j]) j++; c[j]++; } for(i=0;i<4;i++) printf("%d",c[i]); printf("n"); } 结果:3 2 6 1 7. #include void main() { int a=10, b=20; printf("%d %dn",a,b); { int b=a+25; 结果 a*=4; 10 20 printf("%d %dn",a,b); 40 35 } 40 20 printf("%d %dn",a,b); } 共9页 - 4 - - 4 - C语言程序设计期末复习模拟试题(央本) 8. #include void SelectSort(int a[], int n) { int i,j,k,x; for(i=1;i k=i-1;
发布评论