总练习题C语言.docx

上传人:b****4 文档编号:3536762 上传时间:2022-11-23 格式:DOCX 页数:17 大小:22.90KB
下载 相关 举报
总练习题C语言.docx_第1页
第1页 / 共17页
总练习题C语言.docx_第2页
第2页 / 共17页
总练习题C语言.docx_第3页
第3页 / 共17页
总练习题C语言.docx_第4页
第4页 / 共17页
总练习题C语言.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

总练习题C语言.docx

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

总练习题C语言.docx

总练习题C语言

1.在C语言中运算对象必须是整型的运算符是A

A %B !

C /D *

2.C语句x*=y+2;还可以写成C

A x=x*y+2;

B x=2+y*x;

C x=x*(y+2); 

D x=y+2*x;

3.设有floatx;则x是__B__变量。

A 整型B 实型

C 字符型D 长型

4.若有floatx,y;则以下不合法的语句是B

A ++x;

B y=(x%2)/10;

C x*=y+8;

D x=y=10;

5.turboc中int类型变量所占字节数是B

A 1B 2C 3D 4

6.正确的字符串常量是A

A “ABCD”B {ABCD}

C ‘ABCD’D ABCD

7.表达式(int)2.5的值是A

A 2B 3C 0D 2.5

8.逗号表达式"(a=3*5,a*4),a+15"的值是C

A 15B 60C 30D 不确定

9.以下叙述中正确的是D

A 输入项可以是一个实型常量,如:

scanf("%f",3.5);

B 只有格式控制,没有输入项,也能正确输入数据到内存,例如:

scanf("a=%d,b=%d")''

C 当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:

scanf("%4.2f",&d);

D 当输入数据时,必须指明变量地址,例如:

scanf("%f",&f);

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

A

intu=010,v=0x10,w=10;

printf("%d,%d,%d\n",u,v,w);

则输出结果是:

A 8,16,10B 10,10,10

C 8,8,10D 8,10,10

11.已知:

intx,y;floatz;则以下输入语句错误的是D

A scanf("%d,%d,%f",&x,&y,&z);

B scanf("%d%d%f",&x,&y,&z);

C scanf("%d%d%f",&x,&y,&z);

D scanf("%d%d%6.2f",&x,&y,&z);

12.计算机能直接执行的程序是_____D________。

A)源程序B)目标程序C)汇编程序D)可执行程序

13.以下叙述中正确的是________C____。

A)用C语言实现的算法必须要有输入和输出操作

B)用C语言实现的算法可以没有输出,但必须要有输入

C)用C语言程序实现的算法可以没有输入,但必须要有输出

D)用C语言程序实现的算法可以既没有输入,也没有输出

14.以下选项中合法的标识符是____C__________。

A)1_1B)1-1C)_11D)1_

15.5.C源程序中不能表示的数制是_____A_______。

A)二进制B)八进制C)十进制    D)十六进制

16.以下关于C语言数据类型使用的叙述中错误的是_____D_____。

A)若要准确无误地表示自然数,应使用整数类型

B)若要保存带有多位小数的数据,应使用双精度类型

C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型

17.以下选项中,能用作数据常量的是____D_______。

A)o115B)0118C)1.5e1.5D)115L

18.以下选项中不能作为C语言合法常量的是______A________。

A)’cd’B)0.1e+6C)”a”D)‘\011’

19.有以下定义:

inta;longb;doublex,y;,则以下选项中正确的表达式是__A_______。

A)a%(int)(x-y)B)A(a=x)!

=yC)(a*y)%bD)y=x+y=a

20.(int)((double)9/2)-(9)%2的值是____B_________。

A)0B)3C)4D)5

21.程序段:

intx=12;doubley=3.141593;printf(“%d%8.6f”,x,y);输出结果是_____A_____。

A)123.141593B)123.141593C)12,3.141593D)123.1415930

22.有以下语句:

intb;charc[10];,则正确的输入语句是______B_____。

A)scanf(“%d%s”,&b,&c);B)scanf(“%d%s”,&b,c);

C)scanf(“%d%s”,b,c)D)scanf(“%d%s”,b,&c);

23.若变量已正确定义。

在if(W)printf(“%d\n”,k);中,以下不可替代W的是____A_____。

A)a<>b+cB)c=getchar()C)a==b+cD)a++

24.已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是___B____________。

A)kk>=’A”&&kk<=’Z’B)!

(kk>=’A’||kk<=’Z’)

C)(kk+32)>=’a’&&(kk+32)<=’z’D)isalpha(kk)&&(kk<91)

25.15.若a是数值类型,则逻辑表达式(a==1)||(a!

=1)的值是____A_______。

A) 1   B)0C)2D)不知道a的值,不能确定

26.当变量c的值不为2、4、6时值也为“真”的表达式是____B_________。

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)

27.如有表达式(w)?

(--x):

(++y),则其中与w等价的表达式是___D_________。

A)w=1B)w=0C)w!

=1D)w!

=0

1.C语言源程序文件的后缀是_.C___经过编译后生成文件的后缀是_.Obj___,经过链接后生成文件的后缀是.EXE____.

2.已知字母A的ASCII码为65。

以下程序运行后的输出结果是__67G__.

main()  

{chara,b;

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

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

}

1.有以下程序

#include

main(){

intx;

scanf(“%d”,&x);

if(x<=3);

elseif(x!

=10)

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

}

程序运行时,输入的值在哪个范围才会有输出结果________B____ 。

A)不等于10的整数B)大于3且不等于10的整数

C)大于3或等于10的整数D)小于3的整数

2.以下程序运行后的输出结果是___A_____________。

#include

main(){

inta=1,b=0;

if(!

a)b++;

elseif(a==0)if(a)b+=2;

elseb+=3;

printf(“%d\n”,b)

}

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

3.若有定义:

floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是_____C______。

A)switch(x)

{

case1.0:

printf(“*\n”);

case2.0:

printf(“**\”);

}

B)switch((int)x);

{

case1:

printf(“*\n”);

case2:

printf(“**\n”);

}

C)switch(a+b)

{

case1:

printf(“*\n”);

case2+1:

printf(“**\n”);

}

D)switch(a+b)

{

casec:

printf(“*\n”);

case2:

printf(“**\n”);

}

4.以下程序运行后的输出结果是______B________。

#include

main(){

inta=1,b=2;

while(a<6){b+=a;a+=2;b%=10;}

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

}

A)5,11B)7,1C)7,11D)6,1

5.以下程序运行后的输出结果是___B_______。

#include

main(){

inty=10;

while(y--);

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

}

A)y=0B)y=-1C)y=1D)while构成无限循环

6.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是___D_____。

A)n=0;while((ch=getchar())!

=”\n”)n++;

B)n=0;while(getchar()!

=”\n”)n++;

C)for(n=0;getchar()!

=”\n”;n++);

D)n=0;for(ch=getchar()!

=”\n”;n++);

7.以下程序段中的变量已正确定义,则程序段的输出结果是____D______。

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

for(k=1;k<3;k++);

printf(“*”);

A)******B)****C)**D)*

8.以下叙述中正确的是_____C_________。

A)break语句只能用于switch语句体中

B)continue语句的作用是:

使程序的执行流程跳出包含它的所有循环

C)break语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句的作用相同

9.有程序段:

intn=1;

do{n=++n*5;}

while(n=10);

则此循环的循环体(D)

A:

执行1次B:

执行2次C:

不执行D:

执行无限次

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

main()

{inti;

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

{

if(i%2)printf(“*”);

elsecontinue;

printf(“#”);

}

printf(“$”);

}

A:

*#*#*#$B:

*#*#$C:

#*#*#*$D:

#*#*$

11.以下程序段是(C)

x=-1;

do

{x=x*x;}while(!

x);

A:

死循环B:

循环执行两次

C:

循环执行一次D:

有语法错误

12.C语言中,逻辑“真”等价于C

A:

大于零的数B:

大于零的整数C:

非零的数D:

非零的整数

13.C语言的switch语句中,case后B

A:

只能为常量B:

只能为常量或常量表达式

C:

可为常量及表达式或有确定值的变量及表达式D:

可为任何量或表达式

1.以下程序的功能是:

将输入的正整数按逆序输出。

例如:

若输入135,则输出531.请填空。

#include

main()

{intn,s;

printf(“Enteranumber:

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

printf(“Output:

”);

do{s=n%10;printf(“%d”,s);_n/=10___;

}while(n!

=0);

printf(“\n”);

}

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

main()

{intn=10;

while(n>7)

{n--;

printf(“%d”,n);

}}

2.以下程序的输出结果是9,10

main()

{inti=010,j=10;

printf(“%d,%d”,++i,j--);

}

3.以下程序的输出结果是0123456789

main()

{inti;

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

printf(“%d”,i);

}

4.以下程序的输出结果是(1,2,0)

main()

{

inta=1,b=2,c=2,t;

while(a

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

}

5.#include

main()

{inti,j,sum;

for(i=3;i>=1;i--)

{

sum=0;

for(j=1;j<=i;j++)sum+=i*j;

}

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

}

1

编程题

1.编一个程序。

求出200-300之间的某些数,这些数应满足条件:

它们个位、十位、百位之积为42、之和为12。

#include“stdio.h”

main()

{inti,j,k;

i=2;

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

{k=0;

while(k<=9)

{if(i*j*k==42&&i+j+k==12)

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

k++;

}

}

}

2.编程判断输入的正整数是否既是5又是7的整倍数。

若是,输出yes,否则输出no。

#include

main()

{

intx;

printf(“pleaseinputanintegar:

”);

scanf("%d",&x);

if(x%5==0&&x%7==0)printf("yes\n");

elseprintf("no\n");

}

1.下列定义数组的语句中,正确的是__B________。

A)intN=10;intx[N];B)#defineN10

intx[N];

C)intx[0..10];D)intx[];

2.若要定义一个具有5个元素的整形数组,以下错误的定义语句是____D______。

A)inta[5]={0};B)intb[]={0,0,0,0,0};

C)intc[2+3];D)inti=5,d[i];

3.以下程序运行后的输出结果是_____C_____。

#include

main()

{inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;

for(i=0;i<5;i++)s=s+a[b[i]];

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

}

A)6B)10C)11D)15

4.下面是有关C语言字符数组的描述,其中错误的是______D____。

A)不可以用赋值语句给字符数组名赋字符串

B)可以用输入语句把字符串整体输入给字符数组

C)字符数组中的内容不一定是字符串

D)字符数组只能存放字符串

5.以下程序运行后的输出结果是______C__________。

#include

voidfun(intp)

{intd=2;

p=d++;printf(“%d”,p);

}

main()

{inta=1;

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

}

A)32B)12C)21D)22

6.下面的函数调用语句中func函数的实参个数是________A_____。

func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));

A)3B)4C)5D)8

7.以下程序运行后的结果是____A_______。

#include

intfun()

{staticintx=1;

x+=1;returnx;

}

main()

{

inti,s=1;

for(i=1;i<=5;i++)s=fun();

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

}

A)11B)21C)6D)120

8.若函数的形参为一维数组,则下列说法中正确的是B

A 调用函数时的对应实参必为数组名。

B 形参数组可以不指定大小。

C 形参数组的元素个数必须等于实参数组的元素个数。

D 形参数组的元素个数必须多于实参数组的元素个数。

9.在函数的说明和定义时若没有指出函数的类型,则A

A 系统自动地认为函数的类型为整型。

B 系统自动地认为函数的类型为字符型。

C 系统自动地认为函数的类型为实型。

D 编译时会出错。

10.以下对一维数组a进行不正确初始化的是A

A:

inta[10]=(0,0,0,0);B:

inta[10]={};

C:

inta[]={0};D:

inta[10]={10*2};

11.以下叙述中正确的是_________B_____。

A)C语言程序是由过程和函数组成的

B)C语言函数可以嵌套调用,例如:

fun(fun(x))

C)C语言函数不可以单独编译

D)C语言中除了main函数外,其他函数不可以作为单独文件形式存在

1.以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其他以此类推。

用#号结束输入,请填空。

#include

#include

main()

{

intnum[26]={0},i;charc;

while(_c=getchar()_!

=’#’)

if(isupper(c))num[c-‘A’]+=__1__;

for(i=0;i<26;i++)printf(“%c:

%d\n”,i+’A’,num[i]);

}

2.以下程序用以删除字符串中的所有的空格,请填空。

#include

main(){

chars[100]={“our.tercherteachclanguage!

“};inti,j;

for(i=j=0;s[i]!

=’\0’;i++)

if(s[i]!

=’’){s[j]=s[i];j++;}

s[j]=__s[i+1]___;

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

}

3.以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数数值返回,请填空。

(设M、N已定义)

intfun(inta[N][M])

{

inti,j,row=0,col=0;

for(i=0;i

for(j=0;j

if(a[i][j]>a[row][col]){row=i;col=j;}

return__a[row][col]__;

1.以下程序的输出结果是(a+b=9)

#include

inta=5;

intb=7;

intplus(intx,inty)

{

intz;

z=x+y;

return(z);

}

voidmain()

{

inta=4,b=5,c;

c=plus(a,b);

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

}

2.#include

intfun(intx)

{staticintt=0;

return(t+=x);

}

main()

{ints,i;

for(i=1;i<=5;i++)s=fun(i);

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

}

15

1.编一个程序,计算任一输入的整数的各位数字之和。

#include“stdio.h”

#include“math.h”

main()

{intn;

printf("Enterainteger:

");

scanf("%d",&n);

printf("result:

%d",func(n));

}

intfunc(intnum)

{ints=0;

num=abs(num);

do

{s=s+num%10;

num=num/10;

}while(num);

return(s);

}

2.通过调用自定义函数来完成求圆柱体的体积(v=3.14*r2*h),

要求圆柱体的高和底半径在主函数中做输入,圆柱体的体积在主函数中做输出。

#include

floatarea(floatr,floath)

{

floatv;

v=3.14*r*r*h;

returnv;}

voidmain()

{

floatr,h,v;

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

v=area(r,h);

printf("v=%f",v);

}1.有以下程序C

#include

main(){

char*s={“ABC”};

do

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

}while(*s);

}

A)5670B)656667C)567D)ABC

2.以下程序运行后的输出结果是____B___________。

#include

main()

{

intm=1,n=2,*p=&m,*q=&n,*r;

r=p;p=q;q=r;

printf(“%d,%d,%d,%d\n”,m,n,*p,*q);

}

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

3.以下程序中关于指针输入格式正确的是____C________。

A)int*p;scanf(“%d”,&p);

B)int*p;scanf(“%d”,p);

C)intk,*p=&k;scanf(“%d”,p);

D)intk,*p;*p=&k;scanf(“%d”,&p);

4.变量的指针,其含义是指该变量的B

A:

值B:

地址C:

名D:

一个地址

阅读程序给出结果

1.#include

#defineN5

intfun(int*s,inta,intn)

{

intj;

*s=a;j=n;

while(a!

=s[j])j--;

returnj;

}

main()

{

ints[N+1];intk;

for(k=1;k<=N;k++)s[k]=k+1;

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

}

3

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

当前位置:首页 > 表格模板 > 合同协议

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

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