c语言程序设计模拟试题A
专业 班级 学号 姓名 题号 一 得分 二 三 四 五 六 七 八 总分 1、 单选题(15分)
1、若有定义:int a=8, b=5, c; 执行语句c = a/b+0.4 ;后,c的值为( )。 A) 1.4 B) 1 C) 2.0 D) 2
2 、以下程序中,while 循环的次数是( )。 #include
while (i<10) {
if (i<1) continue; if (i==5) break; i++;
} }
A) 1 B) 死循环,不能确定次数 C) 6 D) 10
3、以下程序的输出结果是( )。 #include
for (i=1; i<5; i++)v { switch (i) { case 0:
case 3: a += 2; case 1:
case 2: a += 3; default: a += 5; } }
printf(“%d\\n”, d); }
A) 31 B) 13 C) 10 D) 20
4、执行以下程序段后的输出结果是( )。 int x = 5; int m, n;
n = (++x) + (++x); m = (x--) + (x--);
printf(“%d %d\\n”, m, n);
A) 14 10 B) 13 13 C) 14 14 D) 14 12
5、执行以下程序后的输出结果是( ) #include
int i = 0, j = 0, a = 6;
if ((++i>0)||(++j>0)) a ++;
printf(“i=%d, j=%d, a=%d\\n”, i, j, a);
}
A) i=0, j=0, a=6 B) i=1, j=1, a=7 C) i=1, j=0, a=7 D) i=0, j=1, a=7
6、执行以下程序后的输出结果是( ) #include
char a[]=”abc\\0abc”; printf(“%s”, a);
}
A) abc\\0abc B) abc\\ C) abc\\0 D) abc
7、以下程序的输出结果是( ) #include
int a = 1, b = 2, c = 3; printf(“%d”, c>b>a);
}
A) 2 B) 1 C) 0 D) 3
8、执行以下程序后,a的值为( )。 int *p, a = 10, b=1; p = &a; a = *p + b;
A) 12 B) 编译出错 C) 10 D) 11
9、以下正确的叙述是( )。
A) 在C语言中,main函数必须位于文件的开头 B) C语言每行中只能写一条语句 C) C语言本身没有输入、输出语句
D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误
10、以下各语句或语句组中,正确的操作是( )。
A) char s[5]=\B) char *s; gets(s); C) char *s; s=\D) char s[5]; scanf(\
11、设有以下说明语句,则下面的叙述中不正确的是( )。
struct ex {
int x ; float y; char z ; } example;
A) struct结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型
12、对以下程序段,while 循环执行的次数是( )。
int k=0
while (k=1) k++;
A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次
13、若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,则不能表示a[1] 地址的表达式
是( )。
A) p+1 B) a+1 C) a++ D) ++p
14、函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。
A) 将串str1复制到串str2中后再连接到串str3之后 B) 将串str1连接到串str2之后再复制到串str3之后
C) 将串str2复制到串str1中后再将串str3连接到串str1之后 D) 将串str2连接到串str1之后再将串str1复制到串str3中
15、在下列选项中,不正确的赋值语句是( )。
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
2、 程序填空(26分) 1、求1!+2!+3!+。。。+10! #include
float s = 0, t = 1; int n;
for (n=1; ; n++) { ; ; }
printf(“1!+2!+3!+。。。+10!=%f”, s);
}
2、以下程序是用来统计从键盘输入的一个正整数中各位数字中零的个数,并求各位数字中最大者。例如:1080其零的个数是2,各位数字中最大者是8。 #include
unsigned long num, max, t; int count; count=max=0;
scanf(\ do {
t= ; if(t==0) ++count; else
if(max printf(\ } 3、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数。 #include int i, j; for(i=0; [13]; i++) { j = i*10+6; if ( ) continue; printf(\} } 4、以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。 void exchange(int *x, int *y) { int t; t=*y; *y = ; *x = ; } 3、 阅读程序,4、 写出程序的输出结果(24分) 1、#include char *s, *s1 = “here is”, *s2 = “key”; s = s1; while (*s1!=’\\0’) s1++; while (*s1++=*s2++); s2 = s; while (*s2!=’\\0’) s2++ printf(“%d\\n”, s2-s); } 2、#include static int a[] = {1, 3, 5, 7}; int *p[3] = {a+2, a+1, a}; int **q = p; printf(“%d\\n”, *(p[0]+1) + **(q+2)); } 3、include int num,c; printf(\请输入一个整数:\ scanf(\ do { c=num; printf(\ } while((num/=10)>0); printf(\} 4、include fut(int **s, int p[2][3]) { **s=p[1][1]; } void main(void) { int a[2][3] = {1,3,5,7,9,11}, *p; p = (int *) malloc(sizeof(int)); fut(&p,a); printf(\} 5、 编程(35分) (1)sum=2+5+8+11+14----,输入正整数n,求sum的前n项和。 (2)求1~100间的素数(素数>1,且除了1和自身外,不能被任何其它整数整除。 (3)使用指针数组对输入输入的3个整数序列(每个序列5个整数)进行排序,排序方法 不限。 (10) 有15个数存放在一个数组中,输入一个数,用折半查找法找出该数是数组中第几个元素。 若该数不在数组中,则打印出“No found”。 c语言程序设计模拟试题B 专业 班级 学号 姓名 题号 一 得分 二 三 四 五 六 七 八 总分 6、 单选题(15分) 1、以下程序的输出结果是( )。 #include { int a = 5, b = 4, c = 6, d; printf(“%d\\n”, d=a>b?(a>c?a: c): b); } A) 5 B) 4 C) 6 D) 不确定 2、以下程序的输出结果是( )。 void main(void) { int a = 4, b = 5, c = 0, d; d = !a && !b || !c; printf(“%d\\n”, d); } A) 1 B) 0 C) 非0的数 D) -1 3、以下程序的输出结果是( )。 #include