您的当前位置:首页正文

c语言测试题

来源:个人技术集锦
一.选择题

1.int i=10;float x; 执行x=5/i; 后x的值为 ___c_____。

A.0.5 B.0 C.0.0 D.1.0

2. 以下标识符中,哪一个是C++语言的合法标识符 D A) 2abcd B)int C)a-2c D)_char E)#456xy 3. 以下 C 是不正确的转义字符: A) '\\n' B)‟\\‟‟ C)'061' D)'\\0'

4.执行下面的程序后

# define SQR(X) (X) * (X) void main () { int a=10,K=2,m=1;

a /= SQR(K+m) / SQR(K+m); printf(“%d\\n”,a);

}

输出结果是a=___B____。

A.10 B.1 C.9 D.0

5. 现有定义char str1=\"China\; 则有 B A)strcmp(str1,str2)>0 B)strcmp(str1,str2)<0 C)strlen(str1)=6

D)str1与str2所占存储空间大小一样

6.若在程序中有一个全局标识符,名字为a1,在该程序中有一个局部标识符,名字也为a1,如果在局部标识符范围内访问全局标识符,则该全局标识符应表示为 D 。

A. a1 B. a1:: C.:a1 D.::a1 7. 执行以下程序:

void main (void) {

char c=0;

printf(“%c\\n”,c);}

输出结果是 _____A___。

A.„\\0‟ B.语法错,不能执行 C.0 D.一个空行

8.C++语言对嵌套 if 语句的规定是: else 总是和 A 配对 A)其之前最近的 if B) 缩进位置相同的 if C)第一个 if D) 其之前最近且不带 else 的 if

9.设有定义语句enum aa{add,sub,mul,div}opera;,以下对枚举变量opera的操作中,不正确的是

A opera=(enum aa)2 B cin>>opera

C opera=add+1 D if(opera==sub)cout<<”OK”;

10. 对于下面的几个函数:

void f (int x){…} //1

1

int f (int y) {…} //2 int f (int i,int j) {…} //3 float k (int x) {…} //4

__A______是重载函数。

A. 4个全部 B.1和4 C.2和3 D.3和4

11.以下不正确的描述是A A)在 switch 语句中使用 break 语句或continue语句的作用相同

B)在循环语句中使用 continue 语句是为了结束本次循环,而不是终止整

个循环

C)break 语句不能用于循环语句和 switch 语句之外的任何其他语句 D)在循环语句中使用 break 语句是为了使流程跳出循环体,提前结束循环 12.定义int x=3,执行while(x){printf(“%d”,x);x--;}语句后,最后x的值为: A 。 A) 0 B) 1 C) 3 D)-1

13. 如a=2,b=3,c=-1执行 ++a&&++b||++c; 后, b,c的值分别是 A A)3 -1 B)4 0 C)3 0 D)4 -1 14.若有以下语句,则下面 是正确的描述 static char x[]=\"12345\"; static char y[]={'1','2','3','4','5'}; A)x 数组和 y 数组的长度相同 B)x 数组长度大于 y 数组长度 C)x 数组长度小于 y 数组长度 D)strlen(x)的值与strlen(y)的值不相等 15. 若int a=2,b=3,c=4;则表达式a十b—c? a十b:a十c的值为 c 。 A.0 B.1 C.5 D.6

16.C++语言中while 与do-while语句

A)while的循环当条件成立时执行,而do-while当条件不成立时执行 B)do-while允许从循环外跳至循环体内 C)do-while的循环体至少必须执行一次 D)以上说法都不对

17.C++语言中形参的缺省存储类别是 a

A)自动 B)静态 C)寄存器 D)外部

18.程序中有下面的说明和定义,则会发生的情况是 A …

struct ABC{int x; char y;} …

ABC s1,s2; … A编译时错 B程序将顺利编译、连接、执行

C能顺利编译、连接,但不能执行 D能顺利编译,但连接出错

19.C++语言中的函数___ D _____

A)可以嵌套定义 B)可以嵌套调用,不能递归调用 C)不可以嵌套调用 D)可以嵌套调用,不可以嵌套定义

20.下列程序的运行结果为

2

#include int k=7;

void main() {

int k=3 ;

{ int k=5;

k+=1; } f(); k+=1; cout<int f(void); {

k+=1; return k; }

A)8 B)4 C)6 d) 5

二.填空

1.(1)array是一个一维整型数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,请写出正确的说明语句。

(2)如何用赋值语句把39存入第一个元素。

2.将公式 √s(s-a)(s-b)(s-c)转化为C++语言表达式 3.C++语言中以 作为字符串终止标志.

4.以下程序的输出结果是_ ___。 void main(void) { int x = 3; do{

x-= 2;

}

5.阅读下列程序,写出程序执行结果 void inv(int x[],n){ int t,I,j,m=(n-1)/2; for(I=0;I<=m;I++){ j=n-1-I; t=x[I];x[I]=x[j];x[j]=t;

}

return; }

3

printf(“%d\”,x);

}while ( ! (- -x));

void main(){

static int I,a[10]={3,7,9,11,0,6,7,5,4,2}; printf( “the original array:\\n”);

//输出可不写

for( I=0; I< 10; I++ ) printf(“%d\”,a[I]); cout<for( I=0; I<10; I++) printf(“%d\”,a[I]); }

程序输出结果为

6.下程序的输出结果分别是_____和_____。 int abc(void) {

static int j; j+=100; return(j); }

void main(void) { printf(“%d\\n”,abc() );

printf(“%d\\n”,abc() ); }

7.以下程序输出的第一至第三行分别是__ _____、 ___ ___和____ __。

void main(void) { int i,flag,j,K,count=0; for(i=5;i<30;i+=2){ flag=2,j=2,K=(int)sqrt(i); while(flag&&j<=K) if(i%j==0) flag=0; else j++; if(flag){ printf(“%d”,i); if(++count%3==0) printf(“\\n”); } } }

三.完善程序

4

1.以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数.用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数.请填空.

void main() {

int n,i,j;

printf(\"输入非零的整数(输入零结束程序)\"); i=j=0;

printf(“%d”,&n); while {

if(n>0)

i= ; if(n<0)

j= ; ; }

printf(\"i=%d, j=%d\\n\ }

2.下面函数的功能是求N个数之和的递归函数(即1+2+3+…..+n)

int sum(int n) { if( ) return 1; else return ; }

3.下列函数实现字符串a,b的连接

void stringcat(char a[],char b[]) { int i=0,j=0;

while( )i++;

while(b[j]!='\\0')

{ ;i++;j++;} ; }

4.斐波拉契数列中的头两个数是0和1,从第三个数开始,每个数等于前两个数的和,即:0,1,1,2,3,5,8,13,21,...等。下面这个程序就是求斐波拉契数列的前20个数。请填空。

#include void main() {

int f,f1,f2,i; f1=0;f2= 1 ;

printf(“%d\%d\”,f1,f2); for(i=3;i<=20; ) {

f= ;

5

printf(“%d\”,f); f1=f2;

f2= ; } }

5.以下程序实现在N*N方阵中找出主、次对角线上的最大值、请填空。 #define N 3 void main() { int x[N][N]={1,5,7,4,2,6,4,3,8}; int i,j,row=0,col=0; for(i=0;i6.该程序的作用是将一维无序数组按升序排列 void main() { ; int a[10]={4,6,2,19,5,1,11,10,2,13}; sort(a); for (int i=0;i<10;i++) printf(“%d”,a[i]); }

void sort(int b[]) { int temp; for (int i=0;i<9;i++)

for(int j=i+1; ; )

if( )

{ temp=b[j]; b[j]=b[j+1]; ; } }

6

因篇幅问题不能全部显示,请点此查看更多更全内容