C语言程序设计模拟试题8(附答案)
- 格式:doc
- 大小:68.50 KB
- 文档页数:3
《C语言程序设计》模拟试卷八
一、填空题。(每空2分,共10分)
1.实数在语言中又称
2.表达式a = 1,a + 1,a + + 的值是
___________________。
3. 设int i = 5;则循环语句while (i > = 1) i - -;执行后,i的值为_______________。
4.设char string[] =″This_is_a_book!″;则数组的长度应是________________。
5.设int a[2][3] = {{2},{3}};则数组元素
_____________________的值为3。
二、单项选择题。(每题2分,共在 20分)
1. C语言程序编译时,程序中的注释部分【】
A. 参加编译,并会出现在目标程序中
B. 参加编译,但不会出现在目标程序中
C. 不参加编译,但会出现在目标程序中
D. 不参加编译,也不会出现在目标程序中
2.下列表达式的值为0的是【】
A. 3﹪5
B. 3/5.0
C. 3/5
D. 3<53. 下列保留字中用于构成循环结构的是【】
A. if
B. while
C. switch
D. def ault
4. 与语句if(a>b) if(c>d)x = 1;else x = 2;等价的是【】
A. if(a>b){i f(c>d) x = 1;else x = 2;}
B. if(a>b){if(c>d) x = 1;} else x = 2;
C. if((a>b) && (c>d)) x = 1;else x = 2;
D. if(a< =b) x = 2;else if (c>d) x = 1;
5.设char x =′a′;则printf(″x = ﹪c, y = ﹪c \ n″,x,97);
的输出是【】
A. x = a,y = 97
B. x = 97,y = a
C. x = 97,y = 97
D. x = a,y = a
6. 设int a[][4]={1,2,3,4,5,6,7,8,9};则数组
a的第一维的大小是【】
A. 2
B. 3
C. 4
D. 无确定值
7.执行下列程序
int a[3][3]={{1},{2},{3}};
int b[3][3]={1,2,3};
main()
{printf(″﹪d \ n″,a[1][0] + b[0][0]);}
后输出的结果是【】
A. 0
B. 1
C. 2
D. 3
8. 执行下列程序
int a = 3, b = 4;
void f un(int x1, int x2)
{printf(″﹪d, ﹪d \ n″, x1 + x2, b);}
main()
{int a = 5, b = 6;f un(a, b);}
后输出的结果是【】
A. 3,4
B. 11,1
C. 11,4
D. 11,6
9. 将一个整数10002存到磁盘上,以ASCII码形式存储
和以二进制形式存储,占用的字节数分别是【】
A. 2和2
B. 2和5
C. 5和2
D. 5和5
10.执行如下程序
main()
{ int *p,a[10];
a[0]=10;a[1]=20;
p=a;
printf(“%d”,*(p++));}
则输出结果【】
A. 10
B. 20
C. 40
D . 无法确定
三、按给出的程序功能,在空格处,填写正确的程序语
句,使程序完整。(每题6分,共18分)
1. 以下程序的功能是用选择法对数组a中的整数由小到
大进行排序。
void sort(int b[],int n)
{ int i,j,t;
f or(i = 0;i f or(______;j if(b[i]_____b[j]) {t = b[i];_____________;b[j]=t;} } main() { int a[]={5,8,6,2,7,4,1,3}; int i; sort(a,8); f or(i = 0;i<8;i ++ ) printf(″﹪5d″,a[i]); printf(″\ n″); } 2. 输入一字符串(换行为结束标志)统计其中数字(0,1,2,…,9不单独统计)、空白和其它字符出现的次数。# include ″stdio.h″ main() { char c; int ___________________________; while((c = getchar())! =′\ n′) { if(__________________________)digit + + ; else if(c = =′′‖c = =′\ t′) ++ blank; else __________________________; }printf(″digit =﹪d,blank =﹪d,other =﹪d \ n″,digit,blank,other); } 3. 先为数组a输满数据,再为x输入一个数据,在数组 a中找出第一个与x相等的元素并将其下标输出,若不 存在这样的元素,则输出“Not f ound!”标志。 main() {int i,x,a[10]; f or(i = 0;i<10;i ++ )scanf(″﹪d″,___________); scanf(″﹪d″,&x);print f(″﹪d″,x); f or(i = 0;i<10;i ++) if(_________________)break; if (i _________10)print f(″ position:﹪d \ n″,i); else printf(″ Not f ound! \ n″,x); } 四、按要求编写下列程序。(1-4题每题10分,第5题 12分,共52分) 1. 有一分数序列2/1,3/2,5/3,8/5,13/8,21/13……… 求这个数列的前20项的和。 2. 打印所有的水仙花数。 3.编写一程序,将两个字符串连接起来。不要用strcat 函数。 4.打印出扬辉三角(打印10行) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 5.写一函数,使给定的一个二维数组(3╳3)转置。 模拟试卷八答案: 一、填空 二、选择 三、程序填空 四、编写程序题 1、 #include "stdio.h" main() {int a[10],m,n,t,i; m=1; n=2; f or (i=0;i<20;i++) {a[i]=n/m; t=n; n=m+n; m=t; } f or(i=0;i<20;i++) printf("%d\n",a[i]); } 2、 #include "stdio.h" main() {int i,j,k; f or(i=1;i<=9;i++) f or(j=0;j<=9;j++) f or(k=0;k<=9;k++) if (i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf("%d\n",i*100+j*10+k); } 3、 #include "stdio.h" main() {char a[80],b[40]; int i=0,j=0; scanf("%s",a); scanf("%s",b); while (a[i]!='\n') i++; i--;