大一C语言题库_第1页
大一C语言题库_第2页
大一C语言题库_第3页
大一C语言题库_第4页
大一C语言题库_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、编程大题

1.有一函数:当x<0时,y=-l;当x=0时,y=0;当x>0时,y=lo

编一程序,输入x的值,输出y的值。

#include<stdio.h>

intmain()

(

intx,y;

scanf("%d",&x);

if(x>=0)

if(x>0)y=l;

elsey=0;

elsey="l;

printf("x=%d/y=%d\n"/x/y);

return0;

}

2,输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。

#include<stdio.h>

intmain()

{floata,b,c,t;

scanf("%f,%f,%f“,&a,&b,&c);

if(a<b)

{t=a;a=b;b=t;)

if(a<c)

{t=a;a=c;c=t;}

if(b<c)

{t=b;b=c;c=t;}

printfC嗨NfZSNfZSNfXn,abc);

return0;

}

3,有三个整数a,b,c,由键盘输入,输出其中最大者。

#include<stdio.h>

intmain()

{inta,b,c,max;

printf("请输入a,b,c\n");

scanf(”%d,%d,%cT,&a,&b,&c);

max=a;

if(max<b)

max=b;

if(max<c)

max=c;

printf("最大的数为%d\n",max);

return0;

}

4.编程求圆面积、圆周长。要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。

#include<stdio.h>

voidmain()

(

floatr,I,s;

floatpi=3.1415926;

printf("表输入圆半径r:");

scanf("%f"z&r);

l=2*pi*r;

s=pi*r*r;

printf("圆周长为:l=%6.2f\n",1);

printf("圆面积为:s=%6.2f\n",s);

}

5.有分段函数:当x<-10时,y=|x|+5;当・10WxW10时,y=4x-8;当x>10时,y=sqrt(x)o

编一程序,输入x的值,输出y的值。

#include<stdio.h>

intmain()

(

intx,y;

scanf("%d",&x);

if(x<-10)

y=abs(x)+5;

elseif(x<=10)

y=4*x-8;

elsey=sqrt(x);

,,

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

return0;

}

6.编写程序,判断某一年是否是闰年。(闰年的条件是:能被4整除,但是不能被100整除,或者可以被

400整除。)

#include<stdio.h>

intmain()

{intyearjeap;

printf("enteryear:'1);scanf("%d”,&year);

if(year%4==0)

if(year%100==0)

if(year%400==0)leap=l;

elseleap=0;

elseleap=l;

elseleap=0;

if(leap)printf("%dis",year);

elseprintf("%disnottyear);

printf("aleapyear.\n");

return0;

}

7,输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。公式为

c二的(f・32)

#include<stdio.h>

intmain()

floatc,f;

printf("请输入一个华氏温度:");

scanf("%f",&f);

c=(5.0/9.0)*(f-32);

printf("摄氏温度为:%5.2f\n",c);

return0;

)

8.有一函数:当x<l时,y=|x|;当l<=x<10时,y=2x-l;当x>=10时,y=3x+l函编一程序,输入x的值,

输出y的值。

#include<stdio.h>

#include<math.h>

voidmain()

(

intx,y;

printf("输入x:");

scanf("%d",&x);

if(x<l)

y=abs(x);

elseif(x<10)

y=2*x-l;

else

y=3*x+ll;

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

}

9.输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。

main()

{inta,b,c,*pl,*p2,*p3,t;

scanf("%d,%d,%d",&a,&b,&c);

pl=&a;p2=&b;p3=&c;

if(*pl>*p2)

{t=pl;pl=p2;p2=t;}

if(*pl>*p3)

{t=pl;pl=p3;p3=t;}

if(*p2>*p3)

{t=p2;p2=p3;p3=t;}

printf("%d,%d,%d\n",*pl,*p2,*p3);

)

10.输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输

出最后得到的字符。

#include<stdio.h>

voidmain()

(

charch;

scanf("%c"z&ch);

ch=(ch>='A'&&ch<='Z')?(ch+32):ch;

printf("%c\n“,ch);

)

11.编程求圆柱体积,圆柱表面积。要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点

后两位数字。

#include<stdio.h>

voidmain()

(

floatr,h,v,s;

floatpi=3.1415926;

printf("表输入圆半径r、圆柱高h:”);

l,

scanf(%f%f"/&r,&h);

v=pi*r*r*h;

s=2*pi*r*r+2*pi*r*h;

printf("圆柱体积为:v=%6.2f\n",v);

printf(“圆柱表面积为:s=%6.2f\n”,s);

}

12.编程求圆柱体积,圆柱表面积。要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数

点后两位数字。

#include<stdio.h>

voidmain()

(

floatr,h,v,s;

floatpi=3.1415926;

printf("表输入圆半径r、圆柱高h:");

scanf(”%f%f”,&r,&h);

v=pi*r*r*h;

s=2*pi*r*r+2*pi*r*h;

printf("圆柱体积为:v=%6.2f\n'v);

printf("圆柱表面积为:s=%6.2f\n”,s);

}13.有三个整数a,b,c,由键盘输入,输出其中最小者。

#include<stdio.h>

intmain()

{inta,b,c,max;

printf("请输入a,b,c\n");

scanf("%d,%d%cT,&a,&b,&c);

max=a;

if(max>b)

max=b;

if(max>c)

max=c;

printf("最小的数为%d\n,,,max);

return0;

}

14.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输

出最后得到的字符。

#include<stdio.h>

voidmain()

(

charch;

scanf("%c",&ch);

ch=(ch>='A'&&ch<="Z')?(ch+32):ch;

printf("%c\n“,ch);

}

15.输入三角形的三边长,求三角形面积。求三角形面积的公式为

area=sqrt(s(s-a)(s-b)(s・c)),其中s=(a+b+c)/2

#include<stdio.h>

#include<math.h>

voidmain()

(

floata,b,c,s,area;

1,,,

scanf(%f%f%f/&a,&b,&c);

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("%f\n"zarea);

)

16.编程求2!+4!+6!+8!+10!的值,并输出结果。

#include<stdio.h>

intmain()

(

intn=l,sum=Oj/m=l/i;

for(i=l;i<=5;i++){

m=l;

for(j=l;j<=2*i;j++)

m=m*j;

sum=sum+m;

)

,,

printf("sum=%d\nzsum);

return0;

}

17.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想吃时就剩一个桃子了。求第一天共摘了多少个桃子。

#include<stdio.h>

intmain()

(

intday,xlzx2;

day=9;

x2=l;

while(day>0)

{xl=(x2+l)*2;

x2=xl;

day-;

}

printf("total=%d\n",xl);

return0;

}

18.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

#include<stdio.h>

voidmain()

(

inti,j,k,n;

printf("narcissusnumbersare");

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

(

i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%5d",n);

)

printf("\n");

}

19.编程求l~100之间的所有素数,并输出结果。

include<stdio.h>

#include<math.h>

intmain()

(

intn,m=0,k,i;

for(n=l;n<=100;n=n+2)

{k=sqrt(n);

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

if(n%i==0)break;

if(i>=k+l)

{printf("%d",n);

m=m+l;

)

if(m%10==0)printf(n\n");

)

pnntf("\nH);

return0;

)

20.编程求l!+3!+5!+7!+9!的值,并输出结果。

#include<stdio.h>

intmain()

(

intn=l,sum=0,j,m=lJ;

for(i=l;i<=5;i++){

m=l;

for(j=l;j<=2*i-l;j++)

m=m*j;

sum=sum+m;

)

printf("sum=%d\nn,sum);

return0;

)

21.用pi/^l-3+g]/7+…公式求pi的近似值,直到某一项的绝对值小于10的-6次方为止。

#include<stdio.h>

#include<math.h>

intmain()

{intsign=l;doublepi=0,n=l,term=l;

while(fabs(term)>=le-6)

{pi=pi+term;

n=n+2;

sign=-sign;

term=sign/n;

}

pi=pi*4;

printf("pi=%10.8f\n",pi);

return0;

}

22.一个球从100m高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。求它在第10

次落地时共经过多少米?

#include<stdio.h>

intmain()

(

inti;

doublem=100,sum=0;

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

sum=sum+m;

m=m/2;

}

',

printf(%f\n"zsum);

return0;

}

23.输入两个正整数m和n,求其最大公约数和最小公倍数。

#include<stdio.h>

voidmain()

(

intp,r,n,m,temp;

printf("请输入n和m:");

scanf(”%d,%d,%d,&n,&m);

if(n<m)

temp=n;

n=m;

m=temp;

}

p=n*m;

while(m!=O)

(

r=n%m;

n=m;

m=r;

}

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

printf(":%d\n",p/n);

)

24.利用循环,编程求l!+2!+3!+…+10!的值,并输出结果。

#include<stdio.h>

intmain()

(

intn=l,sum=0j,m=lzi;

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

{m=l;

for(j=l;j<=i;j++)

m=m*j;

sum=sum+m;

)

printf("sum=%d\n"/sum);

return0;

)

25.有一分数序列:如切,58昭1犯21/13……,求出这个数列前20项之和。

#include<stdio.h>

intmain()

(

inti,n=20;

doublea=2,b=l,s=0,t;

for(i=l;i<=n;i++)

(

s=s+a/b;

t=a,

a=a+b,b=t;

}

printf("sum=%16.10f\n",s);

return0;

}

26.求Fibonacci数列前40个数。这个数列有以下特点:第1和第2个数为1,从第3个数开始,该数是

其前面两个数之和。

#include<stdio.h>

intmain()

{intfl=l,f2=l,f3;inti;

printf("%12d\n%12d\n",fl,f2);

for(i=l;i<=38;i++)

{f3=fl+f2;

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

fl=f2;

f2=f3;

}

return0;

}

27.一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,而6=1+2+3,

因此6是完数。编程求1000以内所有完数。

include<stdio.h>

intmain()

{

intm,s,i;

for(m=2;m<1000;m++)

{s=0;

for(i=l;i<m;i++)

if((m%i)==0)s=s+i;

if(s==m)

{printf("%djtsfactorsare”,m);

for(i=l;i<m;i++)

if(m%i==0)printf("%d"J);

printf("\nn);

}

}

return0;

}

28.求S=a+aa+aaa+...+aa...a(n个a)之值。其中a是一个数字,n代表a的位数。例如:2+22+222+2222+22222

(此时n为5),n由键盘输入。

include<stdio.h>

intmain()

(

inta,sn=0,tn=0,kj=l/n;

n

printf("a/n=:);

scanf("%d,%cT,&a,&n);

while(i<=n)

(

tn=tn+a;

sn=sn+tn;

a=a*10;

++i;

)

printf("a+aa+aaa+...=%d\n"zsn);

return0;

}

29.编程求100~200之间的所有素数,并输出结果。

//include<stdio.h>

#include<math.h>

intmain()

(

intn,m=O,k,i;

for(n=101;n<=200;n=n+2)

{k=sqrt(n);

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

if(n%i==0)break;

if(i>=k+l)

{printf("%d",n);

m=m+l;

)

if(m%10==0)printf("\n");

}

printf("\n");

return0;

}

30.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

#include<stdio.h>

voidmain()

(

charc;

intletters=0,space=0,digit=0,other=0;

printfCXn");

while((c=getchar())!='\n')

{

if(c>=9&&c<21|c>='A'&&c<=,Z')

letters++;

elseif(c=='')

space++;

elseif(c>='0'&&c<=,9,)

digit++;

else

other++;

)

,,

printf(":%d\n:%d\n:%d\n:%d\nJetters/space,digit/other);

)

31.将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,4,3,2,0o要求改为0,2,3,4,6,

80

#include<stdio.h>

#defineN6

voidmain()

inta[N],i,temp;

printf("enterarraya:\n");

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

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

printf("arraya:\n");

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

printf("%4d"za[i]);

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

(

temp=a[i];

a[i]=a[N-i-l];

a[N-i-l]=temp;

}

printf("\nNow,arraya:\n");

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

printf("%d”向i]);

printf("\n");

)

32.编写一个函数,求数列1+团+3+加+必利用主函数调用这个函数并输出结果。

#include<stdio.h>

#include<math.h>

voidmain()

(

intizs=l;

floatn,t,a;

t=l;a=0;n=l;

printf("inputn:",n);

while(i<=n)

{

a=a+t;

i=i++;

t=s/i;

}

printf("a=%10.6f\n"/a);

)

33.将一个二维数组inta[3]⑷的行和列的元素互换,存到另外一个二维数组中。

^include<stdio.h>

voidmain()

(

inta[2][3]={{l,2,3},{4,5,6}};

intb[3][2],i,j;

printf("arraya:\n");

for(i=O;i<=l;i++)

(

for(j=O;j<=2;j++)

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

bU][i]=a[i][j];

)

printf("\n");

)

printf("arrayb:\n");

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

(

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

printf("%5d",b[i]U]);

printf("\n");

}

)

34.利用循环输出以下图形

*****

****

***

**

*

//include<stdio.h>

intmain()

(

inti,j,m;

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

{

m=i;

for(m=l;m<i;m++)

printf("");

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

printf("*");

printf("\n");

)

return0;

}

35.用冒泡排序法对输入的10个数进行降序排序,并存入数组中。

intpaixu(x)

intx[];

{int

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

for(i=0;i<=9-j;i++)

if(x[i]>x[i+l]){t=x[i+l];x[i+l]=x[i];x[i]=t;}

}

main()

{inty[10];inti;

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

scanf(”%d”,&y[i]);

paixu(y);

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

printf("%5d",y[i]);

printf("\n");

)

36.有一个3乘4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

#include<stdio.h>

voidmain()

(

inti,j,row=0,colum=0,max;

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

max=a[0][0];

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

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

if(a[i][j]>max)

(

max=a[i][j];

row=i;

colum=j;

}

printf("max=%d,row=%d,colum=%d\n",max,row,colum);

)

37用冒泡排序法对输入的10个数进行升序排序,并存入数组中。

intpaixu(x)

intx[];

{inti,j,t;

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

for(i=0;i<=9-j;i++)

if(x[i]>x[i+l]){t=x[i+l];x[i+l]=x[i];x[i]=t;}

)

main()

{inty[10];inti;

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

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

paixu(y);

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

printf("%5d",y[i]);

printf("\n");

}

38.利用循环,输出以下图形

*****

*****

*****

*****

#include<stdio.h>

intmain()

inti,j,m;

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

(

m=i;

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

printf("");

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

printf("*");

printf("\n");

}

return0;

}

39.输出以下杨辉三角形(要求输出10行)。

1

11

121

1331

14641

115101051

main()

{staticint

b[0][l]=l;

for(m=l;m<ll;m++)

{for(n=l;n<=m;n++)

{b[m][n]=b[m-l][n-l]+b[m-l][n];

printf(”%-5d“,b[m][n]);}printf(',\n'');

)

}

40.利用循环输出以下图形

*

***

*****

#include<stdio.h>

intmain()

(

intiJm;

for(i=l;i<=4;i++)

(

m=i;

for(m=l;m<=4-i;m++)

printf(H");

for(j=0;j<2*i-l;j++)

printf("*");

pnntf(H\nn);

)

return0;

}

41.利用循环,输出以下图形

*****

***

*

#include<stdio.h>

intmain()

(

inti,j,m;

for(i=l;i<=4;i++)

(

m=i;

for(m=l;m<i;m++)

printf("");

for(j=0;j<2*(5-i)-l;j++)

printf("*");

printf("\n");

)

return0;

}

42.求一个3X3的整型矩阵对角线元素之和。

main()

{inti=0,j=0,a[3][3],sl,s2;

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

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

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

sl=a[0][0]+a[l][l]+a[2][2];

s2=a[0][2]+a[l][l]+a[2][0];

printf("sl=%d,s2=%d\n"/sl,s2);

}

43.编写程序,将两个字符串连接起来,不要使用strcat函数。

main()

{inti,j;charstrl[100],str2[100],str3[201];

printf("inputastring:");

gets(strl);

for(i=0;strl[i]!='\0';i++)

str3[i]=strl[i];

printf("inputastring:");

gets(str2);

for(j=0;str2[j]!='\0';j++)

str3[j+i]=str2[j];

str3D+i]='\0';

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

}

44.写一个函数,求两个整数中的较大者,用主函数调用这个函数,并输出结果,两个整数由键盘输入。

#include<stdio.h>

voidmain()

(

intmax(intx,inty);

inta,b,c;

scanf(”%d,%GT,&a,&b);

c=max(a,b);

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

)

intmax(intx,inty)

(

if(x>y)

return(x);

else

return(y);

}

45.编写两个函数分别求两个整数的最大公约数和最小公倍数,在主函数中调用这两个函数,并输出结果,

两个整数由键盘输入。

#include<stdio.h>

voidmain()

(

intcm(intx,inty);

intcd(intx,inty);

inta,b,m,n;

printf("输入两个数:");

scanf("%d%d",&a,&b);

m=cm(a,b);

n=cd(a,b);

printf("最大公约数是%d\n最小公倍数%d\n”,n,m);

)

intcm(intx,inty)

(

intk;

k=x>y?x:y;

for(;;k++)

if(k%x==O&&k%y==O)break;

return(k);

)

intcd(intxjnty)

(

inti,j,k;

k=x>y?y:x;

for(i=l;i<=k;i++)

if(x%i==O&&y%i==O)j=i;

return(j);

}

二、选择题

一、选择题

1,该变量已正确定义为整型,则表达式n=i=2,++i,i++[<3>]o

己知字母A的ASCII值为65,下列程序运行后的输出结果是[<67G>]

main()

{chara,b;

a='A'+'5'-,3,;b=a+,6,-,2';

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

}

2.下列isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。

intisprime(inta)

{inti;

for(i=2;i<=a/2;i++)

if(a%i==0)[<return(0)>];

[<return(l)>];

)

3.设有定义:floatx=123.4567;,则执行下列语句后的输出结果是[<123.460000>]

printf("%f\n",(int)(x*100+0.5)/100.0);

4.若有定义:inta=4,b=5,c=6;接着顺序执行下列语句后,变量b中的值是[<1习。

c=(a-=(b-5));

c=(a%3)+(b=l);

若a的值为1,则表达式!a||++a的值是

5.下列程序的功能是:求出数组x中各相临两个元素的和依次存放到数组a中,然后输出。请填空。

main()

{intx[10],a[9],i;

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

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

for([<i=l>];i<10;i++)

a[i-l]=x[i]+[<x[i-l]>];

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

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

printf("\n");

)

6.设有定义语句:inta[][3]={{0},{l},{3}},则数组元素a田⑵是[<0>]

7.下列程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,

并按每行4个输出,请填空。

main()

{inta[10],b[10],i;

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

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

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

[<b[i-l]=a[i]-a[i-l]>];

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

{printf("%d",b[i-l]);

if(i%4==0)printf("\n");

}

)

8.下面程序将二维数组a的行和列互换后存放到一个二维数组b中,请填空。

main()

{inta[2][3]={{l,2,3},{4,5}},b[3][2],ij;

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

(

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

[<bO][i]=a[i]U]>]

}

)

1.下列叙述中错误的是()

A.算法正确的程序最终一定会结束。

B.算法正确的程序可以有零个输出。

C.算法正确的程序可以有零个输入。

D.算法正确的程序对于相同的输入一定有相同的结果。

~B

2.下列叙述中错误的是()

A.C程序必须由一个或一个以上的函数组成。

B.函数调用可以作为一个独立的语句存在。

C.若函数有返回值,必须通过return语句返回。

D.函数形参的值也可以传回给对应的实参。

~D

3.C语言源程序名的后缀是()

A.exe

B.c

C.obj

D.cp

~B

4.下列叙述中错误的是()

A.用户定义的标示符允许使用关键字。

B.用户定义的标示符应做到“见名知意”。

C.用户定义的标示符必须以字母或下划线开头。

D.用户定义的标示符中大、小写字母代表不同标示。

~A

5.下列关于函数的叙述正确的是()

A.每个函数都可以被其他的函数调用(包含main函数)。

B.每个函数都可以被单独编译。

C.每个函数都可以单独运行。

D.在一个函数内部可以定义另一个函数。

6,下列不合法的用户标示符是()

A.j2_key

B.Jnt

C.4d

D._8_

~C

7,下列定义变量的语句中错误的是()

A.int_int;

B.doubleint_;

C.charfor;

D.floatus$;

~D

8.按照C语言规定的用户标示符命名规则,不能出现在标示符中的是()

A.大写字母

B.连字符

C.数字字符

D.下划线

~B

9.对于一个正常运行的C程序,下列叙述正确的是()

A.程序的执行总是起止于main函数。

B.程序的执行总是从第一个函数开始,结束于main函数

C.程序的执行总是从main函数开始,在最后一个函数结束

D.程序的执行总是从第一个函数开始,在最后一个函数结束

~A

10.下列叙述正确的是()

A.C语言程序从源程序中第一个函数开始执行

B.可以在程序中由用户指定一个函数作为主函数,程序将从此开始执行

C.C语言规定必须用main作为主函数名,程序从此开始执行,在次结束

D.main可作为用户标示符,可以命名任意一个函数作为主函数

-C

1L下列叙述正确的是()

A.C程序中的注释只能出现在程序的开始位置

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

C.C程序书写格式自由,一行可以写多条语句

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

-C

12.下列不合法的数值常量是()

A.011

B.lel

C.8.0e0.5

D.Oxabc

-C

13.可在C程序中用作用户标识符的一组是()

A.and_2007

B.datey-m-d

C.hidr.tom

D.casebigl

14.下列关于long、int和short类型数据占用内存大小的叙述正确的是()

A.均占4个字节

B.根据数据的大小来决定所占内存的字节数

C.由用户自己定义

D.由C语言编译系统决定

~D

15,设变量已正确定义并赋值,以下正确的表达式是()

A.x=y*5=x+z

B.int(15.8%3)

C.x=y+z+3,++y

D.x=25%5.0

~C

16.设有定义:intk=l;floatf=7;则下列选项中错误的表达式是()

A.k=k>=k

B.-k++

C.k%int(f)

D.k>=f>=m

~C

17.表达式3.6-^2+1.2+5%2的值是()

A.4.3

B.4.8

C.3.3

D.3.8

~D

18.下列叙述中错误的是()

A.C程序中的#访611£^和#€(6而®行均不是C语句

B.除逗号运算符外,赋值运算符的优先级最低

C.C程序中,j++;是赋值语句

D.C程序中,+、・、*、%是算术运算符,可用于整型数和实型数的运算

~D

19.下列选项中,当x为大于1的奇数时,值为0的表达式是()

A.x%2==l

B.x/2

C.x%2!=0

D.x%2==0

~D

20.下列叙述中错误的是()

A.C语句必须以分号结束

B.复合语句在语法上被看作一条语句

C.空语句出现在任何位置都不会影响程序运行

D.赋值表达式加上分号就构成赋值语句

~C

21,下列正确定义且赋初值的语句是()

A.intnl=n2=10;

B.charc=32;

C.floatf=f+l.l;

0.doublex=12.3E2.5

22.若变量已正确定义并赋值,下列合法的语句是()

A.x=y==5

B.x=n%2.5

C.x+n=i

D.x=5=l+4

~A

23.以下定义正确的是()

A.inta=b=0;

B.charA=65+l,b='b,;

,,

C.floata=lz"b=&a,c=&b;

0.doublea=0.0;b=l.l;

~B

24.有下列程序:

*main()

*{charal=,M',a2='m';

*printf("%c\n",(al,a2));

*)

下列叙述正确的是()

A.程序输出M

B.程序输出m

C.格式说明符不足,编译出错

D.程序运行时产生出错信息

-B

25.有下列程序:

*main()

*{intx,y,z;

*x=y=l;

*z=x++,y++,++y;

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

*)

*程序运行的结果是()

A,2,3,3

B.2,3,2

C.2,3,1

D.2,2,1

-C

26.设有定义:intk=O;下列选项的4个表达式中与其他3个表达式的值不同的是()

A.k++

B.k=k+1

C.++k

8.k+l

~A

27.在C语言中,以下说法不正确的是()

A.在C程序中,整数和实数都能被准确无误的表示出来

B.在C程序中,任何一个变量名都代表存储器的一个位置

C.静态变量的生存周期与整个程序的运行期相同

D.C语言中,任何变量都必须先声明才能进行引用

~A

28.若有以下定义和语句:

*inta=010,b=0xl0,c=10;

*printf("%d,%d,%d\n",a,b,c);

*则输出结果是()

A.8,10,10

B.10,10,10

C.8,8,10

D.8,16,10

~D

29.设C语言中,float类型数据占4个字节,则double类型数据占()个字节

A.1

B.2

C.8

D.4

~C

30.以下正确的实型常量()

A.E3.4

B.-12345

C.2.2e0.8

D.4

~B

31.设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是()

A.0~255

B.0~65535

C.-32768~32767

D,-256~255

~B

32.设a和b均为int型变量,且a=6,b机1,则能使值为3的表达式是()

A.b%(a%4)

B.b%(a-a%5)

C.b%a-a%5

D.(b%a)-(a%4)

~D

33.已定义变量a为整型,则不能正确表示9<a<14的表达式是()

A.!(9<a&&a<14)

B.a==10||a==ll||a==12||a==13

C.a>9&&a<14

D.!(a<=9)&&!(a>=14)

~A

34.以下程序运行的结果是()

*#include<stdio.h>

*main()

*{inta=3,b=4,c=8,d=4,m=l,n=3;

*printf("%d\n",(m=a>b)&&(n=c>d))

*)

A.O

B.l

C.2

D.3

~A

35.能正确表示“当x的取值范围在[1,10]和[100,110]范围内为真,否则为假”的表达式是()

A.(x>=l)&&(x<=10)&&(x>=100)&&(x<=110)

B.(x>=l)||(x<=10)||(x>=100)||(x<=110)

C.(x>=l)&&(x<=10)11(x>=100)&&(x<=110)

D.(x>=l)||(x<=10)&&(x>=100)||(x<=110)

~C

36.若有定义:inta=4,b=5;floatx=3.4,y=2.1;则下面表达式的值为()

*(float)(a+b)/2+(int)x%(int)y

A.5.5

B.55

C.5.500000

D.55.00000

~C

37.若a为int型变量,则执行以下语句后,a的值为()

*a=5;a+=a-=a*a;

A.25

B.-40

C.40

D.-14

~B

38.若已定义x和y为整型变量,且x=7,则表达式y=2.3+x〃的值是()

A.6

B.5

C.5.0

D.6.0

~B

39.有以下程序:

*main()

*{inty=l,x=2zz=3;

',

*printf(%d,%d\n"/(++x,y++),z+2);

*}

*执行后的输出结果是()

A3,5

B.2,5

C.3,3

D.1,5

~D

40.以下程序的输出结果是()

*main()

*{inta=l,b=2;

*printf("%d%d\n”「a,++b);

*)

A.1,2

B.1,3

C.0,2

D.0,3

~D

41.C语言程序的执行是()

A.从程序的主函数开始,到程序的主函数结束

B.从程序的主函数开始,到程序的最后一个函数结束

C.从程序的第一个函数开始,到程序的最后一个函数结束

D.从程序的第一个函数开始,到程序的主函数结束

~A

42.下面说法正确的是()

A.一个C程序可以有多个函数

B.一个C语言的函数中只允许有一对花括号

C.C语言一个语句可以写在一行内,也可以写在多行内

D.在对C程序进行编译时,可以发现注释行中的拼写错误

-C

43.以下说法正确的是()

A.C程序是以函数为基本单位的,整个程序由函数组成

B.C语言程序的一条语句可以写在不同的行上

C.C程序的注释行对程序运行不起作用,所以注释应该尽可能少写

D.C程序的每个语句都以分号结束

-c

44.以下标示符不是关键字的是()

A.break

B.char

C.Switch

D.return

-C

45.若要求定义具有10个int型元素的一维数组a,则下列定义语句中错误的是()

A.#defineN10

*inta[N]

B.#definen5

*inta[2*n]

C.inta[5+5]

D.intn=10,a[n]

~D

46.下设有如下程序段

,,

*chars[20]="Beijing/*p;

*P=s;

*则执行P=S;语句后,以下叙述正确的是()

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

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

C.s和p都是指针变量

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

47.下列数组定义中错误的是()

A.intx[][3]={0};

B.intx[2][3]={{l,2},{3,4},{576});

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

D.intx[2][3]={l,2,3,4,5,6);

~B

48.有以下程序:

*main()

*{inti,t[][3]={9,8,7,6,5,43,2,1};

*for(i=0;i<3;i++)printf("%d",t[2-i][i]);

*)

*程序执行后的输出结果是()

A.753

B.357

C.369

D.751

-B

49.若有定义语句:inta⑶[6];,按内存中的存放顺序,a数组的第10元素是()

A.a[0][4]

B.a[l][3]

C.a[0][3]

D.a[l][4]

~B

50.以下错误的定义语句是()

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

B.intx[4][3]={{l,2,3},{l,2,3},{l,2,3}};

C.intx[4][]={{l,2,3},{l,2,3},{l,2,3}};

D.intx[][3]={l,2,3,4};

-C

5L以下不正确的定义语句是()

A.doublex[5]={1.0,2.0,3.0,4.0,5.0};

B.inty[5]={0,l,2,3,4,5}};

,,,,,,',,

C.charc[]={l/2,3,,4/5};

D.charc2[]={'a','b','c'};

-B

52.若有以下定义,则正确引用数组元素的是()

*inta[5],*p=a;

A.*&a⑸

B.*a+2

C.*(P+5)

D.*(a+2)

~D

53.若有说明:intaH3]={0,0};则不正确的叙述是()

A.数组a的每个元素的初值都是0

B.数组a的第一维大小为1

C.数组a的行数为1

D.只有元素a⑼⑼和a⑼⑴初值为0,其余元素得不到初值0

-D

54.下列二维数组初始化语句中,不正确的是()

A.intb[][2]={l,2,3,4z5z6,7};

B.intb[3][5]={0,0,0};

Cintb口[4]={{1,2},{3,4,5},{6}};

D,intb⑶[2]={(1,2),(3,4),(5,6)};

~D

55.有以下程序:

*main()

*{intaa[5][5]={{l,2,3,4},{5,6,l,8},{5,9,10,2},{l,2,5,6}};

*ints=O,i;

*for(i=0;i<4;i++)

*s+=aa[i][2];

printf("%d",s);

*)

*程序运行后的输出结果是()

A.26

B.19

C.10

D.20

~B

56.设已有定义:floatx;,则下列对指针变量p进行定义且赋初值的语句中正确的是()

A.float*p=1024;

B.int*p=(float)x;

C.floatp=&x;

D.float*p=&x;

~D

57.设有定义语句int(*f"int);,则以下叙述正确的是()

A.f是基类型为int的指针变量

B.f是指向函数的指针变量,该函数具有一个int类型的形参

C.f是指向int类型一维数组的指针变量

D.f是函数名,该函数的返回值是其类型为int类型的地址

~B

58.设有定义:intnl=0,n2,*p=&n2,*q=&nl;,以下赋值语句中与n2=nl;语句等价的是()

A.*p=*q

B-P=q

C.*p=&nl;

D.p=*q

~A

59.在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是(

A.p向高地址移了一个字节

B.p向高地址移了一个存储单元

C.p向高地址移了两个字节

D.p与n+1等价

~A

60.若有定义语句:intk⑵[3],*pk⑶;,则下列语句中正确的是()

A.pk=k;

B.pk[0]=&k[l][2];

C.pk=k[O];

D.pk[l]=k;

~B

61.若有定义:char(*p)⑹;则标识符p()

A.是一个指向字符型变量的指针

B.是一个指针数组名

C.是一个指针变量,它指向一个含有6个字符型元素的一维数组

D.定义不合法

-C

62.下面程序段的运行结果是()

#include<stdio.h>

voidmain()

,,

{charstr[]=abc"z*p=str;

printf("%d\n"/*(p+3));

}

A.67

B.O

C.字符C的地址

D.字符C

~B

63.若有以下定义,则对a数组元素的正确引用是()

inta[5],*p=a;

A.*&a[5]

B.*a+1

C.*(P+5)

D.*(a+2)

-D

64.数字字符0的ASC||值为48,运行下列程序的输出结果是(

main()

{chara=T,b='2‘;

n

printf("%cz/b++);

printf("%d\n"ba);

)

A.3,2

B.50,2

C.2,2

D.2,50

~C

65.下列不合法的字符常量是()0

A.'\018'

C.'\V

D.'\xcc'

~A

66.下列能正确定义字符串的语句是()

A.charstr[]={'\064'};

B.charstr="kx43";

C.charstr=";

D.charstr[]=n\O";

~D

67.下列合法的字符型常量是()

A.'\xl3'

B.'\081'

C.'65'

D."\n"

~A

68.已知大写字母A的ASC||码是65,小写字母a的ASC||码是97。下列不能将变量c中的大字字母转换

为对应小写字母的语句是()

A.c=(c-'A')%26+'a'

B.c=c+32

C.c=c-'A'+'a'

D.c=('A'+C)%26-,a'

~D

,,,

69.已知字符A的ASC||码值是65,字符变量cl的值是7V,c2的值是执行语句printf("%d,%d/cl/c2-2);

后,输出结果是()

A.A,B

B.A,68

C.65,66

D.65,68

~C

70.下列正确的字符串常量是()

A."\\\"

B.'abc'

C.OlympicGames

D.""

~D

71.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,下列正确的程序

段是()

,

A.while((ch=getchar())!='N)printf("%c"zch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf(”%c”,ch);

D.while((ch=getchar())=='N')printf("%c「ch);

~A

72.有以下程序段

charch;intk;

ch='a';k=12;

printf("%c,%dj,ch,ch,k);

,,

printf(k=%d\n"/k);

已知字符a的ASC||十进制代码为97,则执行上述程序段后输出结果是()

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

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

C.a,97,12k=12

D.a,97,k=12

-D

73.有定义语句:intb;charc[10];,则正确的输入语句是()

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&bzc);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b;&c);

-B

74.设有定义:inta;floatb;,执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876543.0<CR>,a和b的

值分别是()

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

~B

75.设变量均已正确定义,若要通过scanf("%d%c%d%c",&al,&cl,&a2,&c2);语句为变量al和a2赋数值10

和20,为变量cl和c2赋字符X和Y。下面的输入形式中正确的是(乂注:口代表空格字符)。

A.10axn20QY<CR>

B.10nX20DY<CR>

C.10DX<CR>20Y<CR>

D.10X<CR>20QY<CR>

~A

76.有下列程序段:

intj;floaty;charname[50];

scanf(,,%2d%f%s",&j,&y,name);

当执行上述程序段,从键盘上输入555667777abc后,y的值为()

A.55566.0

B.566.0

C.7777.0

D.566777.0

~B

77.以下选项中不是字符常量的是()

A.'\v'

B.'\x2a'

C.'a'

D."\0"

~D

78.以下选项中非法的字符常量是()

A.'W

B.'\020"

C.'\xAA'

D.'O'

~B

79.在执行完下面的C语句段之后,则B的值是()

chara='A';

intb;

B=((34&&56)&&(a<'b'));

A.O

B.l

C.TRUE

D.FALSE

~B

80.若变量已正确定义,以下正确的程序段是()

A.while(ch=getchar()=='\N,)putchar(ch);

B.while((ch=getchar())=='\n')putchar(ch);

C.while((ch=getchar())!=,\N')putchar(ch);

D.while((ch=getchar())!='\n')putchar(ch);

~D

81.若变量已正确定义,下面程序段的输出结果是()

#include<stdio.h>

main()

{floatx=1.236547;

n

printf("%f\nz(int)(x*1000+0.5)/(float)1000);

)

A.1.237000

B.输出格式说明与输出项不匹配,输出无定值

C.1.236000

D.1.24

~A

82.设已定义x为double类型变量:

#include<stdio.h>

main()

{floatx=323,82631;

printf("%.2e\n",x);

}

则以上语句()

A.输出格式描述符的域宽不够,不能输出

B.输出为32.38e+01

C.输出为3.24e+002

D.输出为3.24e2

~C

83.若有以下定义和语句:

intu=011,v=0xll,w=ll;

printf(”%o,%x,%d\n“,u,v,w);

则输出结果是()

A.9,17,11

B.9,11,H

C.11,11,11

D.11,17,11

~C

84.语句“printfC'a'bhowVareYy'Wbou'n");"的输出结果是(

A.a\bhow\'are\'y\\bou

B.a\bhow\'are\'y\bou

C.how'are'you

D.ahow'are'y\bou

~C

85.若变量已正确定义,要求通过scanf(”%c%d%c%d”,&cl,&a,&c2,&b)语句给变量a和b赋数值32和45,

给变量cl和c2赋字符A和B;以下选项中数据从第1列开始输入,正确的输入形式是()

A.A32<回车>845<回车〉

B.A45〈回车>B32〈回车〉

C.A32B45〈回车〉

D.A32B45〈回车〉

~D

86.若有"doublea;",则正确的输入语句是()

A.scanf("%lf"za);

B.scanf(”%f”,&a);

C.scanf("%lf",&a);

D.scanf("%le",&a);

~D

87.已知i、j、k为int型变量,若要从键盘输入2,3,4〈回车〉,使i、j、k的值分别为2、3、4,以下正确

的输入语句是()

Ascanf(“%3d,%3d%3d”,&i,&j,&k);

B.scanf("%d,%d,%d",&i,&j,&k);

',

C.scanf(%d%d%d",&i,&j/&k);

,,

D.scanf("i=%d,j=%dzk=%d,&i,&j,&k);

~B

88.下列运算符中优先级最高的运算符是()

A.!

B.%

C.-=

D.&&

~A

89.下列运算符中优先级最低的运算符是()

A.||

B.!=

c.<=

D.+

~A

90.为表示关系x》yez,应使用的C语言表达式是()

A.(x>=y)&&(y>=z)

B.(x>=y)AND(y>=z)

C.(x>=y>=z)

D.(x>=y)&(y>=z)

~A

91.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是()

A.a&&b

B.a<=b

C.a||b+c&ab-c

D.!(a<b)&&!c||1

~D

.若有的值是()

92ints[4]={l,2,3,4};WJs[s[0]+2*s[2]-s[3]]

A.l

B.2

C.3

D.4

~D

93.对数组的描述正确的是()

A.数组一旦定义去大小是固定的,但数组元素的类型可以不同

B.数组一旦定义去大小是固定的,但数组元素的类型必须相同

C.数组一旦定义去大小是可变的,但数组元素的类型可以不同

D.数组一旦定义去大小是可变的,但数组元素的类型必须相同

~B

94.对字符串"Boy"进行完整赋值的操作是()

Achars[3]={'B','o',V}

B.chars[]="Boy"

C.chars[3]={"Boy"}

D.chars[3];s="Boy"

~B

95.在c语言中引用数组元素时,其数组下标的数组类型允许是()

A.整型常量

B.整型表达式

C.整型常量或整型表达式

D.任何类型的表达式

-C

96.对以下说明语句的正确理解是()

*inta[10]={6,7,8,9,10}

A.将5个初值依次赋给a[l]至a[5]

B.将5个初值依次赋给a⑼至a[4]

C.将5个初值依次赋给a⑹至a[10]

D.因为数组长度与初值的个数不相同,所以此语句不正确

-B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论