C语言试题.docx

上传人:b****8 文档编号:10661531 上传时间:2023-02-22 格式:DOCX 页数:18 大小:20.37KB
下载 相关 举报
C语言试题.docx_第1页
第1页 / 共18页
C语言试题.docx_第2页
第2页 / 共18页
C语言试题.docx_第3页
第3页 / 共18页
C语言试题.docx_第4页
第4页 / 共18页
C语言试题.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言试题.docx

《C语言试题.docx》由会员分享,可在线阅读,更多相关《C语言试题.docx(18页珍藏版)》请在冰豆网上搜索。

C语言试题.docx

C语言试题

一、选择题(1-10每题1分,11-30每题1.5分,共40分)

1.下列选项中,可以作为用户标识符的是

A)voidB)8_8C)_a_0D)a*b

2.若有定义:

floata=22;inti=0,k=18;则不符合C语言规定的赋值语句是

A)k=i++;B)i=(i*k)>=(i-k);C)i=a%11;D)k=!

a;

3.若执行了语句:

floatx=1008;inta=15;则表达式(int)(x+y)%7/17的值为

A)23B)1C)0D)无法确定

4.若有定义语句:

inta=1;doubleb=3.14;,则表达式‘X’+a+b的结果的类型是

A)charB)intC)doubleD)float

5.如有定义语句:

intx=12,y=8,z;,在其后执行语句z=0.9+x/y,则z的值为

A)1.9B)1C)2D)2.4

6.以下是if语句的一种形式:

if(表达式)语句

其中关于“表达式”的说明正确的是:

A)必须是逻辑表达式B)必须是关系表达式

C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式

7.若有定义:

inta,b;,通过语句scanf(“%d;%d”,&a,&b);,能把整数3赋给变量a,5赋给变量b的输入数据是

A)35B)3,5C)3;5D)35

8.若有定义语句:

intk1=10,k2=20;,执行表达式

(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为

A)0和1B)0和20C)10和1D)10和20

9.下列语句中正确的是:

A)charstr[10];str=“Hello”;B)char*str;str=“Hello”;

C)charstr[10];str={“Hello”};D)char*str;str={“Hello”};

10.设有定义inta[10],*p=a;以下能够代表数组元素a[4]的是:

A)a+4B)*(p+4)C)*a+4D)*p+4

11.有以下程序

#include

intmain()

{

inta=1,b=0;

if(--a)

b++;

elseif(a==0)

b+=2;

else

b+=3;

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

return0;

}

程序运行后的输出结果是

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

12.下列条件语句中输出结果与其他语句不同的是

A)if(a)printf(“%d\n”,x);elseprintf(“%d\n”,y);

B)if(a==0)printf(“%d\n”,y);elseprintf(“%d\n”,x);

C)if(a!

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

D)if(a==0)printf(“%d\n”,x);elseprintf(“%d\n”,y);

13.有以下程序:

#include

voidmain()

{inta=7;

while(a--);

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

}

程序运行后的输出结果是

A)-1B)0C)1D)7

 

14.以下不能输出字符A的语句是(注:

字符A的ASCII码值为65,字符a的ASCII码值为97)

A)printf(“%c\n”,’a’-32);B)printf(“%d\n”,’A’);

C)printf(“%c\n”,65);D)printf(“%c\n”,’B’-1);

15.有以下程序(注:

字符a的ASCII码值为97)

#include

voidmain()

{char*s={“abc”};

do

{printf(“%d”,*s%10);++s;}

while(*s);

}

程序运行后的输出结果是

A)abcB)789C)7890D)979898

16.若有定义语句:

doublea,*p=&a;以下叙述中错误的是

A)定义语句中的*号是一个地址运算符

B)定义语句中的*号是一个说明符

C)定义语句中的p只能存放double类型变量的地址

D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p

17.有以下程序:

#include

doublef(doublex);

voidmain()

{doublea=0;inti;

for(i=0;i<30;i+=10)a+=f((double)i);

printf(“%5.0f\n”,a);

}

doublef(doublex)

{returnx*x+1;}

程序运行后的输出结果是

A)503B)401C)500D)1404

18.若定义语句:

intyear=2009,*p=&year;,以下不能使变量year中的值增至2010的语句是

A)*p+=1;B)(*p)++;C)++(*p);D)*p++;

19.以下定义数组的语句中错误的是

A)intnum[]={1,2,3,4,5,6};

B)intnum[][3]={{1,2},3,4,5,6};

C)intnum[2][4]={{1,2},{3,4},{5,6}};

D)intnum[][4]={1,2,3,4,5,6};

20.有以下程序

#include

voidfun(int*p)

{printf(“%d\n”,p[5]);}

main()

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

fun(&a[3]);

}

程序运行后的输出结果是

A)5B)6C)8D)9

21.有以下函数

intfun(char*x,char*y)

{intn=0;

while((*x==*y)&&*x!

=’\0’){x++;y++;n++;}

returnn;

}

函数的功能是

A)查找x和y所指字符串中是否有‘\0‘

B)统计x和y所指字符串中最前面连续相同的字符个数

C)将y所指字符串赋给x所指存储空间

D)统计x和y所指字符串中相同的字符个数

22.数学上的式子1

A)11&&x<=10D)以上都不对

23.若有定义语句:

char*s1=”OK”;*s2=”ok”;,以下选项中,能够输出“OK”的语句是

A)if(strcmp(s1,s2)==0)puts(s1);

B)if(strcmp(s1,s2)!

=0)puts(s2);

C)if(strcmp(s1,s2)==1)puts(s1);

D)if(strcmp(s1,s2)!

=0)puts(s1);

24.以下程序的主函数中调用了在其前面定义的fun函数

#include

voidmain()

{doublea[15],k;

k=fun(a);

}

则以下选项中错误的fun函数首部是

A)doublefun(doublea[15])

B)doublefun(double*a)

C)doublefun(doublea[])

D)doublefun(doublea)

25.有以下程序:

#include

intf(intm)

{staticintn=0;

n+=m;

returnn;

}

voidmain()

{intn=0;

printf(“%d,”,f(++n));

printf(“%d\n”,f(n++));

}

程序运行后的输出结果是

A)1,2B)1,1C)2,3D)3,3

26.若有定义语句:

inta=3,b=2,c=1;,以下选项中错误的赋值表达式是

A)a=(b=4)=3;B)a=b=c+1;

C)a=(b=4)+c;D)a=1+(b=c=4);

27.有以下程序

#include

voidmain()

{ints;

 scanf("%d",&s);

 while(s>0)

 {switch(s)

  {case1:

printf("%d",s+5);

  case2:

printf("%d",s+4);break;

  case3:

printf("%d",s+3);

  default:

printf("%d",s+1);break;

 }

  scanf("%d",&s);

  }

  }

运行时,若输入123450<回车>,则输出结果是

A)6566456B)66656C)66666D)6666656

28.有以下程序

#include

#defineS(x)4*(x)*x+1

voidmain()

{intk=5,j=2;

printf("%d\n",S(k+j));

}

程序运行后的输出结果是

A)197B)143C)33D)28

29.有如下程序,其中k的初始值为八进制数

#include

voidmain()

{intk=011;

k++;

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

}

则程序运行后的输出结果是:

A)12B)11C)10D)9

30.设有定义:

struct{charmark[12];intnum1;doublenum2;}t1,t2;,若变量均已正确赋初值,则以下语句中错误的是

A)t1=t2;B)t2.num1=t1.num1;

C)t2.mark=t1.mark;D)t2.num2=t1.num2;

二、填空题(【1】-【10】每空1分,【11】-【20】每空2分,共30分)

1、以下程序实现两个字符串的连接。

不用strcat函数,填空请将程序补充完整

voidstr_cat(charS1[80],S2[40])

{

inti=0,j=0;

while(【1】)

i++;

while(S2[j]!

=’\0’)

【2】

【3】

printf(“\n连接后的字符串为:

%s”,S1);

}

2、以下程序计算1!

+2!

+…+10!

的值,请填空:

void main()

{

   intf=1,i,j,sum=0;  

for(j=1;j<=10;j++) 

{

   for(i=1;【4】;i++)

      【5】

      【6】

f=1;

}

  printf("1!

+2!

+…+10!

=%d",sum);

}

3、请将以下程序补充完整,实现求二维数组中最大元素值及其行列号。

voidmain()

{inta[5][5],i,j;

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

{

for(j=0;j<5;j++)

{scanf(“%d”,&a[i][j]);}

}

intsum=a[0][0],row,col;

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

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

{

if(【7】)

{

【8】

【9】

【10】

}

}

}

printf(“a[%d][%d]=%d”,row,col,sum);

}

4、以下程序是从键盘输入字符统计小写字母个数,读入字符‘#’时停止统计,请填空:

voidmain()

{

 intn=0,c;

while((c=getchar())!

=【11】)

 {

if(【12】)n++;

 }

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

}

5、以下程序是找年龄最大的人,输出其姓名和年龄。

请将以下程序补充完整:

#defineN4

structman

{charname[20];

intage;

}person[N]={“li”,18,”wang”,19,”zhang”,22,”sun”,20};

voidmain()

{

structman*q,*p;

inti,m=0;

p=person;q=person;

for(i=0;i

if(m<_【13】)

{q=p++;

【14】

}

print(“【15】,%d”,q->name,q->age);

}

6、以下程序实现数组的逆序输出,请填空:

#defineN5

voidmain()

{inta[N]={9,6,8,4,1},i,temp;

printf(“\noriginalarray:

\n”);

for(i=0;i

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

for(i=0;【17】;i++)

{temp=a[i];

【18】

a[N-i-1]=temp;

}

printf(“sortedarray:

\n”);

for(i=0;i

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

}

7从键盘读取一个字符串,统计出现某特定字符个数.请完善该程序:

voidmain()

{inti=0,num=0;

charstr[20],ch;

ch=getchar();

【19】

while(str[i]!

=’\0’)

{

if(【20】)num++;

i++;

}

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

}

三、读程序,写出运行结果(每小题3分,共15分)

1.

voidfunc1(inti);

voidfunc2(inti);

charst[]="hello,friend!

";

voidfunc1(inti)

{

printf("%c",st[i]);

if(i<3)

{i+=2;func2(i);}

}

voidfunc2(inti)

{

printf("%c",st[i]);

if(i<3){i+=2;func1(i);}

}

voidmain()

{inti=0;func1(i);printf("\n");}

2.

voidmain()

{

inti=0,s=0;

do{

if(i%2){i++;continue;}

i++;

s+=i;

}while(i<7);

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

}

3.

voidf(intx,inty)

{

intt;

if(x

}

voidmain()

{

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

f(a,b);

f(a,c);

f(b,c);

printf("%d,%d,%d",a,b,c);

}

4.

voidfun(int*a,inti,intj)

{

intt;

if(i

}

voidmain()

{

inta[]={18,2,5,4,7,6},i,j,s=0,m=5;

for(j=0;j<6;j++)

{

fun(a,s,m);

s++;

m--;

}

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

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

}

5.

#defineA4

#defineBA-2

voidpoint(char*t)

{

t+=B/2;

*t=*t+1;

}

voidmain()

{charb[]="abcdef",*p=b;

point(p);

printf("%s\n",b);

}

 

四.编程题(第一题7分,第二题8分,共15分)

1.通过键盘输入3×3的整数矩阵,编程求出矩阵主对角线上元素之和。

2.编写函数,其功能是在字符串s1的指定位置f前插入字符串s2,要求函数首部为:

voidinsert(char*s1,char*s2,intf)。

参考答案

一、选择题(1-10每题1分,11-30每题1.5分,共40分)

1-5CCCCB

6-10DCBBB

11-15CDABB

16-20AADCD

21-25BCDDA

26-30AABCC

二、填空题(每题2分,共30分)

1s1[i]!

='\0'ors1[i]!

=0

2s1[i++]=s2[j++]

3s1[i]='\0'ors1[i]=0

4i<=j

5f=f*iorf*=i

6sum=sum+forsum+=f

7a[i][j]>=sum

8sum=a[i][j];

9row=i;

10col=j;

11'#'

12c>='a'&&c<='z'

13p->ageor(*p).ageorperson[i].age

14m=q->age;orm=(*q).age;orm=person[i].age

15%s

16i++

17i

18a[i]=a[N-i-1];

19gets(str);orscanf("%s",str);

20str[i]==ch

三、读程序,写出程序运行结果(每题3分,共15分)

1.hlo

2.16

3.4,3,5

4.6745218

5.abceef

四、编程题(第1题7分,第2题8分,共15分)

1.

#include

intsummary(intb[3][3])

{

inti,sum=0;

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

{

sum=sum+b[i][i];

}

returnsum;

}

voidmain()

{

inta[3][3],sum=0;

inti,j;

printf("pleaseinputrectangleelements:

\n");

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

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

scanf("%d",&a[i][j]);

sum=summary(a);

printf("sumis%d",sum);

}

2.

voidinsert(char*s1,char*s2,intf)

{

inti,j;

chart;

for(i=f,j=0;s2[j];i++,j++)

{

t=s1[i];

s1[i]=s2[j];

s2[j]=t;

}

for(j=0;s2[j];j++,i++)

s1[i]=s2[j];

s1[i]='\0';

}

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1