
C语言程序设计模拟试卷七
(考试时间:75分钟)(总分:150分)
说明:请在答题纸的相应位置上作答,在其它位置上作答的无效。
一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,井将所选项前的字母填写在答题纸的相应位置上。)1.以下正确的C 语言自定义标识符是(
)A._la B.2a_ C.Do D.a122.在C 语言中,错误的常数表示是(
)A.OL B.Ox6aL C.'6'
D. 1. 234E3. 5
3.设int a,x =2; 执行语句a =x>0?3*x:x =l0;后,变量x 的值是(
)
A.
1
B.2
C.
6
D.10
4.设有以下程序段:i n t x =2,y =2,z =O,a;
a =++x 11 ++y&&z++;printf
("%cl, %d, %d\\n" , x , y , z ) ;执行后输出的结果是()
A.
2, 2, 0
B.3, 3, 1
C.
3, 2, 0
D. 3, 2, 15.在C 语言中,字符串"\\ \\TOP\\\65\\" "的长度是(
A. 5
B. 7
C. 9
D.1�
6.设float x;, 由键盘输入:12. 45, 能正确读入数据的输入语旬是(
)
A.scanf("%5f" , &x);C.scanf("%f" , x );
B.scanf("%5d" , &x);D.scanf("%s" , &x)
7.逗号表达式
a =2*6,
a*3, a+5的值是(
) A.12
B.17
C.
36
8.以下叙述中正确的是(
)
A.break 语句只能用千switch 语句中
D.41
B.continue 语句的作用是:使程序的执行流程跳出包含它的所有循环
-28 -
C.break 语句只能用在循环体内和switch 语旬体内
D.在循环体内使用break 语旬和continue 语句的作用相同9.
在C 语言中,下列运算符中结合性属千自右向左的是()A.
&&
B.
10.设int (*p)[4];,则p 的含义是(
A. 指向整型变量的指针数组
B.指向4个整型变量的函数指针
C.4个指向整型变量的指针变量
C.«
)
D.指向具有4个整型元素的一维数组的指针
11.设char x[] [10]={ "Windows
)
A.
n
B.i
C.
0 D.
->
D.s
12.设int a[4][3]={1,2,3,4,5,6, 7,8,9, 10, 11, 12};int(*ptr) [3]=a,*p=a[O] ;, 则与数组元素a[l][2]等价的是(
')
A.*((p+2)+3)
B. *(*(p+3))
C.
(*ptr+l)+2
D.*
((ptr+ 1) [2])13.设int a =ll, b =2;, 执行下述程序段后,变量a 和b 的值分别是(
)
do
{a/=b++; }whi le (a>b );A.1, 3
B.1, 4
14.在C 语言中,下列错误的说法是(
A. 函数可以递归调用
B.不允许在函数中再定义函数
C.
2, 3
D.2, 4
C.递归程序不可能用非递归算法实现
D.对千continue 语句,可以用过改变程序的结构而不使用它15.设int a[2] [3]={ {l}, {2, 3}};, 则元素a[l][OJ 的值是(
)
A.
B.1
C.2
D.3
16.C 语言结构体类型变量在程序执行期间(
)
A.所有成员一直驻留在内存中C.部分成员驻留在内存中
B.只有一个成员驻留在内存中D.没有成员驻留在内存中
struct student
{char name[lO];
int sex;
int num;
} S, *p=&s;
以下对结构变量s中成员num的非法引用是()
.p-)num B. (*p).num C. s.num 18.下列说法中正确的是()
. C语言的预处理命令只有宏定义和文件包含
B.预处理命令只能出现在主函数之前
C.所有预处理命令都是以符号"i=t"开头
D.有些预处理命令不是在源程序编译之前处理
) D.student.num
19.已有定义int(*p) (); 指针p可以(
.代表函数的返回值 B.指向函数的入口地址
C.表示函数的类型
D.表示函数返回值的类型
20.下列属千文件包含的命令是()
fl. tldei rn e N 2:_i13.tlendj 1
C.J:linclude "stdio. h"
D.!:/else
二、阅读程序题(本题共5小题,每小题6分,共30分,请写出程序的运行结果)
1.【程序】
#include { char chl ='A', c h2='B'; switch (chl) { case'A': switch (ch2) { case'B': printf ("Good! \\n") ;b reak; case'A': printf ("Better! \\n") ;b reak; case'B': printf ("Best! \\n") ; break; -29 - 【运行结果】 2.【程序】 #include do { a[len++]=num%2; num=num/2; } while(num); for(i=O;i printf ("\\n") ; } 【运行结果】 3.【程序】 #include { int x=O,y=5,z=3; while(z--)O&&++x<5) y=y-1; printf("%d,%d,%d\\n } 【运行结果】 4.【程序】 tlinclude d =O; if (a ==l)if(b!=2) if(c ==3) d =l; els e d =2; else if(c!=3) d =3; else d =4; else d =5; printf(11 %d\\n 11 ,d); 【运行结果】 【运行结果】 三、程序填空题(共3题,每空5分,共35分) 1.对含有10个元素的数组a 先按元素的存储次序倒序输入,再按其正序输入。tlinclude in t i,a[N]; for (i=N -1; ;i --) scanf("%d" .' ), 5. 【程序】 #include (::;tdio. h> #include strcpy(t.b,"ChangRong"); t.c =l202.0;for(i =O ;i void main() { struct A a ={lOOl, "ZhangDa printf ("%cl, %s, %6. lf\\n 字母等级A B C D E 分数范围90~100 so~sg 70~79 50~59 0~59 其它字母 输入错误 输入字母等级之后,输出相应的分数苑围。 -30- #include void main() scanf("%c" , &score); switch () case'A':priintf("A:90~100\\n"); case'B': p ri i ntf ("B: 80~\\n") ;b reak; case'C':priintf("C:70~79\\n") ;break; case'D':priintf("D:60~69\\n") ;break; case'E':priintf("E:50~59\\n") ;break; : p rintf ("输入错误\\n"); 四、编程题(共3小题,每题15分共45分) 1.输入自变量x的值后,计算并输出y的值。 计算公式:y e {釭n,:COS X e' 当x 2.用循环结构输入下列数字金字塔(共9行)。 1 121 12321 1234321 123456787654321 3.某重点大学的博士入学考试科目为外语和两门专业课,对于每个考生,输入各科 考试成绩,并计算总分。
