c语言模拟试卷及答案

c语言模拟试卷及答案

模拟试题

模拟试卷一

一、选择题

1.逻辑运算符两侧运算对象的数据____

A.只能是0或1 B.只能是0或非0正数

C.只能是整型或字符型数据 D.可以是任何类型的数据

2.下面程序段的输出结果是____

int a=023;

printf("%d\n",--a);

A.23 B.17 C.18 D.24

3.若有定义:int a[3][4]; 下面不能表示数组a[1][1]的是____。

A. *(a[1]+1) B. *(&a[1][1]) C.(*(a+1))[1] D. *(a+5)

4.设有语句:char str1[]="string",str2[8],*str3,*str4="string";则______不是对库函数strcpy的正确调用。

A. strcpy(str1,"HELLO1"); B. strcpy(str2,"HELLO2");

C. strcpy(str3,"HELLO3"); D. strcpy(str4,"HELLO4");

5.设有定义: int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

int (*prt)[3]=a,*p=a[0];

则下列能够正确表示数组元素a[1][2]的表达式是______。

A. *((*prt+1)[2]) B. *(*(p+5)) C. (*prt+1)+2 D.*(*(a+1)+2)

6.有以下程序

struct abc

{ int a, b, c; };

main()

{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;

t=s[0].a+s[1].b;

printf("%d\n",t);

}

程序运行后输出结果是____。

A.5 B.6 C.7 D.8

7.有以下程序:

#include

union pw

{ int i; char ch[2]; } a;

main()

{ a.ch[0]=13; a.ch[1]=0; printf("%d\n",a.i); }

程序的输出结果是____。

A.13 B.14 C.208 D.209

8.已知字符0的ASCII码为十六进制的30,若有以下程序

main()

{ union { unsigned char c; unsigned int i[4]; } z;

z.i[0]=0x38;

z.i[1]=0x36;

printf("%c\n",z.c);}

输出结果为____。

A.6 B.8 C.0 D.3

9.若有定义char a=1,b=2,c=3;,则表达式 a | b & ~c 的值为____。

A.0 B.1 C.2 D.3

10.以下程序的输出结果是____。

main()

{ char x=020;

printf("%o\n",x<<2);

}

A.100 B.80 C.64 D.32

11.下列关于C语言数据文件的叙述中正确的是____。

A.文件由ASCII码字符序列组成,C语言只能读写文本文件

B.文件由二进制数据序列组成,C语言只能读写二进制文件

C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

12.若要打开D盘上test子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是____。

A. fopen("D:\\test\\abc.txt","r") B. fopen("D:\\test\\abc.txt","r+")

C. fopen("D:\\test\\abc.txt","rb") D. fopen("D:\\test\\abc.txt","w")

13.若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是____。

A. EOF B. 1 C.非零值 D. NULL

14.用fopen函数打开文件时,若文件使用方式参数为“r+”,则该文件____。

A.只能读,不能写 B.可以读、写,但文件必须存在

C.只能写,不能读 D.可以读、写,若文件不存在则创建新文件

15.在打开的文件中,要获得文件位置指针的当前位置,应调用的库函数是____。

A. fseek B. fread C.ftell D.rewind

二、填空题

1.C源程序的基本单位是____。

2.一个C语句中至少应包含一个____。

3.在C语言中,输入操作可以由库函数____完成,输出操作可以由库函数___完成。

4.若x是int型变量,且x=6,则表达式x%2+(x+1)%2的值为____。

5.若a、b、c均是int型变量,则执行表达式c=(a=5)-(b=2)+a后,c的值为____。

6.若有定义:int y=7; float x=2.5,z=4.7;,则表达式x+(int)(y/3*(int)(x+z)/2)%4的值为__。

7.以下程序的功能是:输入三个整数n1、n2、n3,按从大到小的顺序进行输出。请填空。

main( )

{ int n1, n2, n3, temp;

scanf("%d%d%d", &n1, &n2, &n3);

if (______)

{ temp=n2; n2=n3; n3=temp; }

if (______)

{ temp=n1; n1=n2; n2=temp; }

printf("%d, %d, %d\n", n1, n2, n3);

}

8.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。请填空。

main( )

{ char ch1;

scanf("%c", ch1);

if (_______)

ch1=ch1+32;

else if (ch1>='a' && ch1<='z')

________;

printf("%c", ch1);

}

9.程序运行后的输出结果是______。

main()

{ int a=1,b=3,c=5;

if (c==a+b) printf("yes\n");

else printf("no\n");

}

10.以下程序运行后的输出结果是______。

main()

{ int x=10,y=20,t=0;

if(x==y)t=x;x=y;y=t;

printf("%d,%d\n",x,y);

}

11.以下程序运行后的输出结果是______。

main()

{ int x=10,y=20,t=0;

if(x=y)

{t=x;x=y;y=t;}

printf("%d,%d\n",x,y);

}

12.以下程序运行后的输出结果是______。

main()

{ int i,m=0,n=0,k=0;

for(i=9; i<=11;i++)

switch(i/10)

{ case 0: m++;n++;break;

case 1: n++; break;

default: k++;n++;

}

printf("%d %d %d\n",m,n,k);

}

三、程序设计

1.请编写函数fun,它的功能是:求出ss所指字符串中、指定字符的个数,并返回此值。2.写程序,实现矩阵(3行3列)的转置(即行列互换)。

#include

void fun(int array[3][3])

{

}

main()

{ int i,j;

int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

printf("%7d",array[i][j]); printf("\n");

}

fun(array);

printf("Converted array:\n"); for(i=0;i<3;i++)

{for(j=0;j<3;j++)

printf("%7d",array[i][j]);

printf("\n");

}

}

相关主题
相关文档
最新文档