发布时间 : 星期三 文章《C程序设计》模拟题1更新完毕开始阅读f533c3c30740be1e650e9af1
一、 选择题(每题1分,共20分)
1- 5 6-10 11-15 16-20 1.以下叙述正确的是( )。
A) C语言本身没有输入输出语句
B) C程序每行中只能写一条语句
C) 在对C程序进行编译的过程中,可发现注释中的拼写错误 D) 在C程序中,main函数必须位于程序的最前面
2.下列标识符中不符合C语法规则的是( )。
A) a1 B) 1a C) _a1 D) a_1
3.若有int a=0,b=0; 则,执行语句“a&&(++b);”后,b的结果是( )。
A) 0 B) 1 C) 2 D) 3
4. 以下for循环的执行次数是( )。 for (x=0,y=0;(y=123)&&(x<4);x++);
A)是无限循环 B)循环次数不定 C)执行4次 D)执行3次
5. 以下程序段( )。 x=-1; do
{(x=x*x;}
while(!x);
A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误
6.设m=5, n=4, 则,执行语句“m=m%n;”后,m的值为( )。
A) 0 B) 1 C) 2 D) 3
1
7.C语言中,while 和do-while循环的主要区别是( )。
A) while循环控制条件比do-while循环控制条件严格 B) do-while循环体至少无条件执行一次 C) do-while允许从外部转到循环体内 D) do-while循环体不能是复合语句
8. 若用数组名作为函数调用的实参,则传递给形参的是( )。
A) 数组中全部元素的值 B) 数组的第一个元素的值 C) 数组的首地址 D) 数组元素的个数
9. 若有字符数组a[80]和b[80],则正确的输出形式是( )。
A) puts(a,b); B)printf(\C) putchar(a,b); D)puts(a); puts(b);
10. 若有定义:int a[][3]={1,2,3,4,5,6,7};,则数组a第一维的大小是( )。
A) 2 B) 3 C) 4 D)无确定值
11. 下面程序段的运行结果是( )。
char a[]=\ p=a;
while(*p!=‘u’) { printf(\
A) LANGUAGE B) language C) LANG D) langUAGE
…………………………线………………..………………………….… 学号: 12.以下程序调用scanf函数为变量x输入数据的方法是错误的,其错误
原因是( )。 void main() {float *p,x;
p=&x;
scanf(\在最后一条语句中,
A) *p表示的是变量a的值,而不是变量a的地址 B) *p表示的是指针变量p的地址
2
C) *p表示的是指针变量p的值
D) *p只能用来说明p是一个指针变量
13.若有定义:int a[10];,则对数组元素的正确引用是( )。 A) a[10] B) a[3.5] C) a(5) D)a[10-10]
14.若有定义:char a[]=\
则以下叙述正确的是( )。
A) 数组a和b的长度相同 B) a数组长度小于b数组长度 C) a数组长度大于b数组长度 D) 上述说法都不对
15. 下面不正确的字符串常量是( )。
A) \’12\ B) \abc’ D) \
16.若有以下定义和语句,则输出结果是( )。 char c1='b',c2='e';
printf(\
A) 2,M B) 3,E
C) 2,E D) 输出项与对应的格式控制不一致,输出结果不确定
17.定义一个结构体变量时,系统分配给它的存储空间是( )。
A) 该结构体中占用最大存储空间的成员所需存储空间 B) 该结构体中所有成员所需存储空间的总和 C) 该结构体中第一个成员所需存储空间
D) 该结构体中最后一个成员所需存储空间
18.以下程序段中与语句n=a>b?1:0;功能等价的是( )。
A) if(a>b) n=1; B) if(a>b) n=1;else n=0;
C) if(a>b) a=1;else b=0; D) 语法错误
19.若有定义:int a[10],*p=a;并在以后语句中未改变p的值,则
不能表示a[1]元素地址的表达式是( )。 A) a++ B) p++ C)a+1 D)p+1
3
20.以下程序的输出结果是( )。 void main()
{int i,a[3][3]={1,2,3,4,5,6,7,8,9},*p=&a[1][0]; for(i=0;i<3;i++)
printf(\
A) 1 2 3 B) 4 5 6 C) 7 8 9 D) 1 5 9
二、读程序,写出运行结果(每小题5分,共50分)1.程序的执行结果是:
#include
for(n=1; n<=10; n++) {if (n%2) continue; if(n%6== 0) break; printf(\return 0; }
2. 程序的执行结果是:
int main()
{ int i,j, m, n; i=1; j=2; …m=i++; n=--j;
.…printf(\……return 0; ……}
…3.程序的执行结果是:
……#define N 15
……void fun(int b[],int n,int m) ..…{int i,j;
…… for(i=m;i>=n;i--) … b[i+1]=b[i]; ……}
线…int main()
……{ int i,a[N]={1,2,3,4,5,6,7,8,9,10};
………… 4
………