C语言考试练习题.docx

上传人:b****4 文档编号:5294315 上传时间:2023-05-08 格式:DOCX 页数:11 大小:17.61KB
下载 相关 举报
C语言考试练习题.docx_第1页
第1页 / 共11页
C语言考试练习题.docx_第2页
第2页 / 共11页
C语言考试练习题.docx_第3页
第3页 / 共11页
C语言考试练习题.docx_第4页
第4页 / 共11页
C语言考试练习题.docx_第5页
第5页 / 共11页
C语言考试练习题.docx_第6页
第6页 / 共11页
C语言考试练习题.docx_第7页
第7页 / 共11页
C语言考试练习题.docx_第8页
第8页 / 共11页
C语言考试练习题.docx_第9页
第9页 / 共11页
C语言考试练习题.docx_第10页
第10页 / 共11页
C语言考试练习题.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言考试练习题.docx

《C语言考试练习题.docx》由会员分享,可在线阅读,更多相关《C语言考试练习题.docx(11页珍藏版)》请在冰点文库上搜索。

C语言考试练习题.docx

C语言考试练习题

一、选择题

1、以下叙述中正确的是C。

A)C程序中的注释只能出现在程序的开始位置和语句的后面

B)C程序书写格式严格,要求一行内只能写一个语句

C)C程序书写格式自由,一个语句可以写在多行上

D)用C语言编写的程序只能放在一个程序文件中

2、以下不合法的标识符是C。

A)printB)FOR

C)&aD)_00

3、以下不属于字符常量的是B。

A)’C’B)”C”

C)’\xCC’D)’\072’

4、设变量已正确定义并赋值,以下正确的表达式是C。

A)x=y*5=x+zB)int(15.8%5)

C)x=y+z+5,++yD)x=25%2.5

5、以下定义语句中正确的是B。

A)inta=b=0;B)charA=65+1,b=’b’;

C)floata=1,*b=&a,*c=&b;D)doublea=0.0;b=1.1;

6、有以下程序段:

charch;

intk;

ch=’a’;

k=12;

printf(“%c,%d,”,ch,ch,k);

printf(“k=%d\n”,k);

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是D。

A)因变量类型与格式描述符的类型不匹配输出不定值

B)输出项与格式描述符个数不符,输出为零或不定值

C)a,97,12k=12

D)a,97,k=12

7、当变量c的值不为2、4、6时,值也为“真”的表达式是C。

A)(c==2)||(c==4)||(c==6)

B)(c>=2&&c<=6)||(c!

=3)||(c!

=5)

C)(c>=2&&c<=6)&&!

(c%2)

D)(c>=2&&c<=6)&&(c%2!

=1)

8、若变量已正确定义,有以下程序段:

inta=3,b=5,c=7;

if(a>b)a=b;c=a;

if(c!

=a)c=b;

printf(“%d,%d,%d\n”,a,b,c);

其输出结果为B。

A)程序段有语法错B)3,5,3

C)3,5,5D)3,5,7

9、有如下程序:

voidmain()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1 :

switch(y)

{

case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;

}

printf(“a=%d,b=%d\n”,a,b);

}

程序运行后的输出结果是D。

A)a=1,b=0B)a=2,b=2

C)a=1,b=1D)a=2,b=1

10、有以下程序:

voidmain()

{intx=8;

for(;x>0;x--)

{if(x%3)

{printf(“%d,”,x--);continue;}

printf(“%d,”,--x);

}

}

程序的运行结果为D。

A)7,4,2,B)8,7,5,2,

C)9,7,6,4,D)8,5,4,2,

11、有以下程序:

voidmain()

{inta[]={1,2,3,4},y,*p=&a[3];

--p;

y=*p;

printf(“y=%d\n”,y);

}

程序的运行结果是D。

A)y=0B)y=1

C)y=2D)y=3

12、以下错误的定义语句是C。

A)intx[][3]={{0},{1},{1,2,3}};

B)intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C)intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D)intx[][3]={1,2,3,4};

13、设有如下程序段:

chars[20]=”beijing”,*p;

p=s;

则执行p=s;语句后,以下叙述正确的是A。

A)可以用*p表示s[0]

B)s数组中元素的个数和p所指字符串长度相等

C)s和p都是指针变量

D)数组s中的内容和指针变量p中的内容相同

14、若有定义:

inta[2][3];,以下选项中对a数组元素正确引用的是D。

A)a[2][!

1]B)a[2][3]

C)a[0][3]D)a[1>2][!

1]

15、有定义语句:

chars[10];,若要从终端给s输入5个字符,错误的输入语句是D。

A)gets(&s[0]);B)scanf(“%s”,s+1);

C)gets(s);D)scanf(“%s”,s[1]);

16、若函数调用时的实参为变量时,以下关于函数实参和形参的叙述中正确的是D。

A)函数的实参和其对应的形参共占同一存储单元

B)形参只是形式上得存在,不占用具体的存储单元

C)同名的实参和形参占同一存储单元

D)函数的形参和实参分别占用不同的存储单元

17、有以下程序:

voidfun(char**p)

{++p;printf(“%s\n”,*p);}

voidmain()

{char*a[]={“Morning”,“Afternoon”,“Evening”,“Night”};

fun(a);

}

程序的运行结果是A。

A)AfternoonB)fternoon

C)MorningD)orning

18、有以下程序:

#include

#include

voidfun(int*a,intn)

{inti,j,t;

for(i=0;i

for(j=i+1;j

if(a[i]

}

voidmain()

{

intc[10]={1,2,3,4,5,6,7,8,9,0},i;

fun(c+4,6);

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

printf(“%d,”,c[i]);

}

程序的运行结果是D。

A)1,2,3,4,5,6,7,8,9,0,

B)0,9,8,7,6,5,1,2,3,4,

C)0,9,8,7,6,5,4,3,2,1,

D)1,2,3,4,9,8,7,6,5,0,

19、有以下程序:

fun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-3);

returnp;

}

voidmain()

{printf("%d\n",fun(7));

}

程序的运行结果是A。

A)2B)3C)6D)5

20、有以下程序:

structtt

{intx;

structtt*y;

}*p;

structtta[4]={20,a+1,15,a+2,30,a+3,17,a};

voidmain()

{inti;

p=a;

for(i=1;i<=2;i++){printf(“%d,”,p->x);p=p->y;}

}

程序的运行结果是D。

A)20,30,B)30,17,C)15,30,D)20,15,

二、填空题

1、阅读以下程序,写出程序的输出结果。

#include

#include

voidmain()

{charp[20]={‘a’,’b’,’c’,’d’},q[]=”abc”,r[]=”abcde”;

strcpy(p+strlen(q),r);strcat(p,q);

printf(“%d%d\n”,sizeof(p),strlen(p));

}

执行后输出结果是2011。

2、阅读以下程序,写出程序的输出结果。

inta=4;

intf(intn)

{intt=0;staticinta=5;

if(n%2){inta=6;t+=a++;}

else{inta=7;t+=a++;}

returnt+a++;

}

voidmain()

{ints=a,i=0;

for(;i<2;i++)s+=f(i);

printf(“%d\n”,s);

}

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

3、阅读以下程序,写出程序的输出结果。

copy_string(char*from,char*to)

{while(*from)*to++=*from++;

*to=‘\0’;

}

voidmain()

{staticchars1[]=“program”;

staticchars2[80];

copy_string(s1,s2);

printf(“%s”,s2);

copy_string(“123”,s2);

printf(“%s\n”,s2);

}

执行后输出结果是。

4、阅读以下程序,写出程序的输出结果。

voidmain()

{char*p[]={“3629”,“7584”};

inti,j;

longnum=0;

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

{j=0;

while(p[i][j]!

=’\0’)

{if((p[i][j]-‘0’)%2)

num=10*num+p[i][j]-‘0’;

j+=2;

}

}

printf(“%d\n”,num);

}

执行后输出结果是。

5、阅读以下程序,写出程序的输出结果。

#include

intf(inta[],intn)

{if(n>1)

returna[0]+f(a+1,n-1);

elsereturna[0];

}

voidmain()

{intaa[10]={1,2,3,4,5,6,7,8,9,10},s;

s=f(aa+2,4);printf(“%d\n”,s);

}

执行后输出结果是。

三、填程序题,请在程序空白处填写。

1、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如:

153是一个“水仙花数”,因为153=13+53+33。

voidmain()

{

inti,j,k,n;

printf(“‘waterflower’numberis:

”);

 for(n=100;n<1000;n++)

 {

  i=n/100;

  j=(

(1));

  k=n%10;

  if(

(2))

   {

   printf(“%d”,n);

   }

}

printf("\n");

}

2、将数组a中的n个整数按相反顺序存放。

voidinv(int*x,intn)

{int*p,t,*i,*j,((3));

i=x;

j=x+n-1;

p=x+m;

for(;i<=p;i++,j--)

{t=*i;

((4));

*j=t;

}

}

voidmain()

{inti,a[10]={2,5,6,7,8,9,4,3,6,8};

printf("Theoriginalarray:

\n");

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

printf("%d",a[i]);

((5));

printf("Thearrayhasbeenreverted:

\n");

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

printf("%d",a[i]);

}

四、编程题

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2