C语言模拟试题II复习课程 下载本文

语言模拟试题I

CI

精品文档

《C语言程序设计教程 实验与练习》(第二版)模拟试题II及答案

一、 单项选择题(每题2分,30道题,共60分) 1.

下面的程序将输出:

main() {

float f;

int x=1,y=2.5; f=x/y;

printf(\f=%1.1f,y=%#X\); }

A.f=0.0 , y=2 B.f=0.5 , y=0X2 C.f=0.0 , y=0X2 2.

下面的程序将输出:

#include \string.h\ main() {

int len;

char str[]=\a\\b\\04235\\0\; len=strlen(str); printf(\%d\,len); } A. 10 B. 5 C. 6 3.

下面的程序将输出:

main() {

int a=0x31;

char *str[]={\this is one. \this is two. \}; char ch;

ch=++a-’0’; switch(ch) {

case 1: printf (\%s\); case 2: printf (\%s\); default: printf (\no way! \); } }

A.this is one. B.this is two. C.no way!

收集于网络,如有侵权请联系管理员删除D.f=0.5 , y=2

D. 7

D.this is two.no way!

精品文档

4. 下面的程序将输出:

main() {

int a[5]={1,2,3}; int k,j;

for(k=1;k<4;k++) a[k]++;

for(j=0;j<5;j++) printf(\%d \,a[j]); }

A.1 3 4 1 0 B.2 3 4 1 0 5.

C.2 3 4 0 0 D.1 3 4 0 0

已知有下面两个变量,将数组a的第2个单元赋值为1的C语句是:

int a[10]; int *p; p=a;

A.a[2]=1; 6.

B.p[1]=1; C.*(p++)=1; D.*(++a)=1;

下面程序将输出:

void add(int a) { a++; return; } main() { int k; k=3.4; add(k);

printf(\%d\,k); } A. 3.4 7.

B. 4.4 C. 3 D. 4

下列循环结构中,不是无限循环的是: ..

B. i=10;

while(1) {i=i+1;

if(i>10) break; } D. i =100;

while(++i%2) i++;

收集于网络,如有侵权请联系管理员删除

A. for(i=1, s=0; ; i++)

s=s+i ;

C. int i=0;

do{ ++i ; }while(i>=0);

精品文档

8.

若已知int a[3][4],*p;p=(int *)a;那么对数组a的第2行第2列的正确引用是:

B.p[5]

C.a[5]

D.p[1][1]

A.a[2][2] 9.

已知:int (*p)[20]; 且p的值是0X5000,请问表达式p+2的值是多少?

B. 0X5002

C. 0X5004

D. 0X5040

A. 0X5050 10. 11.

若有说明int a[2][2];那么,下面正确的C赋值语句是:

B.a[1]=2;

C.a[1]={1,2};

D.a[0][1]=a[1][0];

A.a=2;

设x为int型变量,则执行以下语句后,x的值为

x=10; x+=x-=x-x; A.10 12.

已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是:

B.语法错

C.1

D.\假\

B.20

C.40

D.30

A.0 13.

下面能正确进行字符串赋值操作的语句是: ...

B.char s[]={'A','B','C','D','E'}; D.char *s;scanf(\,s);

A.char s[5]={\C.char *s;s=\ 14.

已知:int a[3][4], *p=&a[0][0]; p+=6; 那么*p 和_____的值相同.

B.*(&a[0]+6) C.a[2][2]

D.*(&a[0][0]+6)

A.(a+6) 15.

设有以下说明和定义:

typedef union { long i; int k[4]; char c; }DATE; struct date { int cat; DATE cow; double dog; } too; DATE max;

则下列语句的执行结果是

收集于网络,如有侵权请联系管理员删除

精品文档

printf (\A.26 16.

设有如下定义:

B.30

C.18

D.8

int *(*ptr)();

则以下叙述中正确的是

A.ptr是指向一维组数的指针变量 B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是指向函数的指针,该函数的返回值是指向int型数据的指针 17.

若二维数组a 有m列,则在a[i][j]之前的元素个数为______

B.i*m+j

C. i*m+j-1

D.i*m+j+1

A.j*m+i

收集于网络,如有侵权请联系管理员删除