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 B.while C.do-while D.任一种
7. 循环语句“for(int i=0; i<n; i++) S;”中循环体S被执行的次数为( C )。
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 令数组全部的值为0)。
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+"
二、填空题
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=4\n”的长度为 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 。
三、写出下列每个程序运行后的输出结果
1. #include<stdio.h>
void main() {
int i, s=0;
for(i=1;;i++) {
if(s>50) break;
if(i%2==0) s+=i;
}
printf("i,s=%d, %d\n",i,s);
}
结果:i,s=15,56
2. #include<stdio.h>
void main() {
结果
*****
****
***
**
*
char ch='*'; int i, n=5;
while(1) {
for(i=0;i<n;i++) printf("%c",ch);
printf("\n");
if(--n==0) break;
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论