C语言练习题陈树振.docx

上传人:b****4 文档编号:4689852 上传时间:2023-05-07 格式:DOCX 页数:26 大小:30.15KB
下载 相关 举报
C语言练习题陈树振.docx_第1页
第1页 / 共26页
C语言练习题陈树振.docx_第2页
第2页 / 共26页
C语言练习题陈树振.docx_第3页
第3页 / 共26页
C语言练习题陈树振.docx_第4页
第4页 / 共26页
C语言练习题陈树振.docx_第5页
第5页 / 共26页
C语言练习题陈树振.docx_第6页
第6页 / 共26页
C语言练习题陈树振.docx_第7页
第7页 / 共26页
C语言练习题陈树振.docx_第8页
第8页 / 共26页
C语言练习题陈树振.docx_第9页
第9页 / 共26页
C语言练习题陈树振.docx_第10页
第10页 / 共26页
C语言练习题陈树振.docx_第11页
第11页 / 共26页
C语言练习题陈树振.docx_第12页
第12页 / 共26页
C语言练习题陈树振.docx_第13页
第13页 / 共26页
C语言练习题陈树振.docx_第14页
第14页 / 共26页
C语言练习题陈树振.docx_第15页
第15页 / 共26页
C语言练习题陈树振.docx_第16页
第16页 / 共26页
C语言练习题陈树振.docx_第17页
第17页 / 共26页
C语言练习题陈树振.docx_第18页
第18页 / 共26页
C语言练习题陈树振.docx_第19页
第19页 / 共26页
C语言练习题陈树振.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言练习题陈树振.docx

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

C语言练习题陈树振.docx

C语言练习题陈树振

海南大学应用科技学院

C语言练习题

陈树振

2012/3/19

第1部分数据类型、运算符和表达式

】C语言变量名的第一个字符()

A.必须为字母B.必须为下划线

C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种

】请选出均可作C语言用户标识符的一组()

A.intfloataaa

B.a_b_abab_

C.2aba2bab2

D.a+babaa_bb

】C语言中,要求运算量必须是整型的运算符是()。

A.+B./C.%D.*

】以下说法错误的是()

A.同一种符号作为运算符出现在不同场合可以有不同含义

B.某些不同数据类型的数据可以出现在同一表达式中

C.赋值运算符的左边和右边的变量的类型有时可以不同

D.任何不同数据类型的数据都不可相互转换

】以下选项不是C语言常量的是()

A.‘\n’B.e-2C.-256至255D.“ok”

【7】执行以下程序后,c3的值是()

intc1=1,c2=2,c3;

c3=c1/c2;

A.0B.1/2C.0.5D.1

【8】设x为int型变量,则执行以下语句后,x的值为()

x=10;x+=x-=x-x;

A.10B.20C.40D.30

【10】下列可以正确表示字符型常量的是()

A."a"B.'\t'C."\n"D.65

【13】已知inti;floatf;以下正确的是()

A.(intf)%iB.double(f)%iC.int(f%i)D.(int)f%i

【14】已知:

chara;intb;floatc;doubled;表达式a+b+c+d运算结果的数据类型是(C)

A.intB.charC.floatD.double

【16】字符串:

"\\\t,\0\n"的长度是()

A.8B.7C.6D.5

【20】已知floatx=3,y;则y=++x+1的结果为()

A.5B.6C.3D.表达式语法是错误的

【23】设有如下的变量定义:

inti=8,a,b;

doublex=1.42,y=5.2;

则以下符合C语言语法的表达式是()。

A.a+=a-=(b=4)*(a=3)B.x%(-3)C.a=a*3=2D.(int)y=i

【11】以下错误的转义形式的字符类型数据是()

A.'\\'B.'\''C.'\'D.'\0'

*【26】设x和y均为int型变量,则以下语句:

x+=y;y=x-y;x-=y;的功能是()

A.把x和y按从大到小排序B.把x和y按从小到大排序

C.无确定结果D.交换x和y中的值

【15】已知inti,a;执行语句:

i=(a=2*3,a*5),a+6;后,变量i的值是()

【28】已知在字母A的ASCII代码为65,以下程序的输出结果是()

#include

intmain()

{charc1='A',c2='D';

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

return0;

}

【29】下面程序的输出是()

#include

intmain()

{

intx=10,y=10;

printf("%d,%d,",x--,--y);

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

return0;

}

*【22】sizeof(double)是()。

第2部分C语句

【4.1】以下选项中不是C语句的是()

A.{inti;i++;printf("%d\n",i);}

B.;

C.a=5,c=10;

D.{;}

E.{}

【4.2】下列属于C语句的是()。

A.printf("%d\n",a)

B.#include

C.{a=b;b=c;c=a;}

D./*thisisaprogram*/

【4.8】{a=3;c+=a-b;}在语法上被认为是条语句。

空语句的形式是。

第3部分printf和scanf

【4.3】若inta,b,c;则为它们输入数据的正确输入语句是()

A.read(a,b,c);

B.scanf("%d%d%d",a,b,c);

C.scanf("%D%D%D",&a,&b,&c);

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

【4.4】若floata,b,c;要通过语句:

scanf("%f%f%f",&a,&b,&c);分别为a,bc输入10,22,33。

以下不正确的输入形式是()

A.10B.10.0,22.0,33.0C.10.0D.1022

2222.033.033

33

第4部分关系运算和逻辑运算及选择运算符

填空题

【27】关系运算的运算结果是()

【21】已知:

inta=4,b=5;则执行表达式:

a=a>b后,变量a的值是()

A.0B.1C.4D.5

【17】已知:

charc='A';inti=1,j;执行语句j=!

c&&i++;后,i和j的值是()

A.1,1B.1,0C.2,1D.2,0

【5.2】对于逻辑表达式:

1<=x<=2

A.当x的值大于等于1同时小于等于2时,表达式的值为真。

B.x的值为任何值,表达式的值均为真。

C.x的值为任何值,表达式的值均为假。

D.此表达式非法。

【5.3】设a为int型变量,则不能表示数学关系|a|>10的表达式是()

A.a>10||a<-10B.a>10|a<-10C.!

(a>=-10&&a<=10)D.!

(a<=10)||a<-10

【5.4】分析下面程序执行的结果:

main()

{inta=3,b=7;

printf("%d\n",b%a);/*输出为:

*/

printf("%d\n",!

a>b);/*输出为:

*/

printf("%d\n",a+b);/*输出为:

*/

printf("%d\n",a&&b);/*输出为:

*/

}

【5.5】要判断char型变量m是否是数字字符,可以使用下列表达式()

A.0<=m&&m<=9B.'0'<=m&&m<='9'

C."0"<=m&&m<="9"D.前面三个答案都是错误的

【24】下列运算符中,运算优先级最高的是()

A.==B.%C)?

D.++

【18】已知:

intx=1,y=2,z;则执行:

z=x>y?

++x:

++y;后,z的值为()

A.1B.2C.3D.4

*【25】运行下面的程序后,a的值是()

inta,x=10,y=9;

a=(--x==y)?

x+1:

y+2;

第5部分选择结构程序设计

【5.6】if语句的控制条件()

A.只能用关系表达式B.只能用关系表达式或逻辑表达式

C.只能用逻辑表达D.可以用任何表达式

【5.7】执行下列程序段后,x、y、z的值分别是()

#include

intmain()

{intx=10,y=20,z=30;

if(x>y)

{z=x;x=y;y=z;

}

return0;

}

【5.8】若执行以下程序时从键盘输入3,4,则输出结果是()

inta,b,s;

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

s=a;

if(a

s=b;

s*=s;

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

【5.9】若a和b均是整型变量,以下语法正确的switch语句是()

A.switch(a/b)B.switch(a*a+b*b);

{case1:

case3.2:

y=a+b;break;{case3:

case0:

case5:

y=a-b;casea:

y=a+b;break;

}case0:

y=b-a;break;}

C.switchaD.switch(a+b)

{default:

x=a+b;break;{case10:

y=a+b;break;

case10:

y=a-b;break;case11:

y=a-b;break;

case11:

y=a*b;break;}}

填空题

【5.11】if语句的表达式只有其值为时表示逻辑“真”,其值为时表示逻辑“假”

【5.13】用逻辑表达式表示数学中的:

|x|>4,其表达式应为__________________

【5.14】用逻辑表达式表示数学中的:

|x|<4,其表达式应为__________________

【5.15】用逻辑表达式表示数学中的:

|x|>=4,其表达式应为__________________

【5.16】用逻辑表达式表示数学中的:

|x|<=4,其表达式应为____________________

【5.17】以下程序的输出是。

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

if(a=b>c)

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

else

printf("$$$a=%d\n",a);

【5.18】改错题:

以下程序求3个整数中的最小值,程序是否有错?

若有错,请改正。

#include

intmain()

{inta,b,c;

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

if(a

printf("min=%d\n",a);

if(b

printf("min=%d\n",b);

if(c

printf("min=%d\n",c);

return0;

}

第6部分循环结构程序设计

【6.1】执行语句for(i=1;i<4;i++);后,i的值是()

A.3B.4C.5D.不定

【6.2】执行语句for(i=1;i++<4;);后,i的值是()

A.3B.4C.5D.不定

【6.3】运行下列程序段的输出结果是()

m='a';

while(!

m)

printf("%c",m);

A.aB.aaa…C.不输出任何信息D.'a'

【6.4】在下列选项中,没有构成死循环的程序段是()

A.inti=100;B.for(;;);

while

(1)

{i=i%100+1;

if(i>100)

break;

}

C.intk=10;D.ints=36;

do{while(s);--s;

++k;

}while(k>=100);

【6.5】阅读程序段:

执行下列程序段后输出是()

intx;

for(x=10;x>7;x--)

{

if(x%3)

x--;

printf("%d",x);

}

【6.6】下列说法中正确的是()

A.break只用在switch语句中,而contine用在循环语句中

B.break只用在循环语句中,而contine用switch语句在中

C.break能结束循环,而contine只能结束本次循环

D.contine能结束整个循环过程,而break只能结束本次循环

【6.7】若有:

do{i=a-b++;printf("%d",i);}while(!

i);则while中的!

i可用()代替。

A.i==0B.i!

=1C.i!

=0D.以上均不对

【6.8】以下while循环执行的次数是()

k=0;

while(k=10)

k=k+1;

【6.9】有以下程序片段,请问执行后的输出结果是()

#include

intmain()

{

intn=10;

while(n>7)

{printf("%d",n--);

}

return0;

}

【6.11】以下循环语句执行的次数是()

inti,j;

for(i=5;i;i--)

for(j=0;j<4;j++){......}

【6.12】下列程序的输出结果是()

inti=0,sum=0;

do{

sum+=i;i++;

}while(i<5);

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

第7部分数组

【7.1】若定义inti,*p;使p指向i的赋值语句是()

A.p=&i;B.*p=&i;C.*p=i;D.p=*&i;

【7.2】合法的数组定义是()

A.chara={'H','e','l','l','o'};B.chara[5]={"H","e","l","l","o"};

C.chara[5]={'H','e','l','l','o'};D.chara[5]="Hello";

【7.3】下列一维数组说明中,正确的是()

A.#defineSIZE8

floatb[SIZE];

B.intn;scanf("%d",&n);floatb[n];

C.intm=7,a[m];

D.inta(10);

【7.4】若有说明inta[5][4];则对其数组元素的正确引用是()

A.a[3+1][2]B.a

(2)(3)C.a[0,2]D.a[3][5]

【7.5】运行下面程序段的输出结果是()

inta[7]={1,3,5};

printf("%d\n",a[3]);

A.0B.5C.3D.不确定数

【7.6】以下正确的数组定义语句是()

A.inty[1][4]={1,2,3,4,5}

B.floatx[3][]={{1},{2},{3}};

C.longs[2][3]={{1},{1,2},{1,2,3}};

D.doublet[][3]={0};

【7.7】若有说明:

inta[3]4];则a[i][j]之前的元素个数是()

A.j*4+iB.i*4+jC.i*4-1D.i*4+j+1

【7.8】以下程序的输出结果是()

intm[3][3]={{1},{2},{3}};

intn[3][3]={1,2,3};

printf("%d",m[1][0]+n[0][0]);

printf("%d\n",m[0][1]+n[1][0]);

【7.9】以下程序的输出结果是()

#include

intmain()

{

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

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

printf("%d",x[i][2-i]);

return0;

}

【7.10】下列有关字符数组与字符串的说法中正确的是()

A.字符数组中存放的一定是一个字符串。

B.所有的字符数组都可以被当作中字符串处理。

C.对存放字符串的字符数组可以象一般数组一样对数组中的单个元素进行操作。

D.一个字符数组可以认为就是一个字符串。

【7.11】用字符串初始化字符数组,下列选项正确的是()

A.chars[5]={'a','e','i','o','u'};

B.chars[5];s="good";

C.chars[5]="abcd";

D.chars[5];s[]="good";

【7.12】不能正确为字符数组输入数据的是()

A.chars[5];scanf("%s",&s);B.chars[5];scanf("%s",s);

C.chars[5];scanf("%s",&s[0]);D.chars[5];get(s);

【7.13】若有chara[80],b[80];则正确的是()

A.puts(a,b);B.printf("%s,%s",a[],b[]);

C.putchar(a,b);D.puts(a);puts(b);

第8部分函数

【8.1】C语言程序的基本结构是()

A.函数B.语句C.字符D.程序行

【8.2】以下叙述中,正确的是()

A.C语言程序总是从第一个定义的函数开始执行

B.在C语言程序中,要调用的函数必须在main()函数中定义

C.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分

【8.4】已知函数fun的定义为:

voidfun()

{......}

则函数定义中void的含义是()

A.执行fun后,函数没有返回值B.执行fun后,函数不再返回

C.执行fun后,函数可以返回任何类型的值D.以上三个答案都不对

【8.5】以下叙述中错误的是()

A.函数中的自动变量可以赋初值,每调用一次赋一次初值

B.调用函数时,实参和形参在类型上只需赋值兼容

C.外部变量的隐含类型是自动存储类别

D.函数形参的存储类型是自动(auto)类型的变量

【8.7】函数返回值的数据类型是由()决定的

A.return语句中的表达式类型B.调用该函数的主调函数类型

C.调用时临时决定D.定义函数时所指定的函数类型

【8.8】变量的存储类型说明它们存储在内存的哪些区域,请写出至少3种

()。

【8.9】下面的函数递归函数sum(intn)完成1至n的累加和。

intsum(intn)

{if(n<=0)

printf("dataerror\n");

if(n==1)

;

else

return;

}

【8.10】下面的函数是一个求阶乘的递归函数。

intfacto(intn)

{if(n==1)

;

else

return;

}

第9部分编译预处理

【9.1】完成编译预处理的工作是在()完成的。

A.编译时B.编译前C.编译后D.执行时

【9.2】下列属于C语句的是()

A.10>=x&&x>=-10B.#include

C.{a=b;b=c;c=a;}D./*thisisaprogram*/

第10部分指针

【10.1】若定义inti,*p;使p指向i的赋值语句是()

A.p=&i;B.*p=&i;C.*p=i;D.p=*&i;

【10.3】有以下程序

intfun(intx,inty,int*cp,int*dp)

{*cp=x+y;*dp=x-y;

}

main()

{inta,b,c,d;

a=30;b=50;

fun(a,b,&c,&d);

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

}

输出结果为()

【10.4】运行以下程序段的输出结果是()。

chars[10]="abcdefg",*p;

p=s;p++;

printf("%s",p);

A.abcdefgB.bcdefgC.cdefgD.编译不能通过

【10.5】若有程序段:

int**pp,*p,a=100,b=200;

p=&b;

pp=&p;

printf("%d,%d\n",*p*(**pp));

则输出结果为()

填空题

【10.6】若有以下定义和语句:

intarray[10]={23,54,10,33,47,98,72,80,61},*p;

p=array;

则p[5]的值是98。

【10.7】下面程序的输出结果是。

charb[]="ABCD";

char*p;

for(p=b;*p;p+=2)

printf("%s",p);

【10.8】下面程序的输出结果是________。

inta[10]={19,23,44,17,37,28,49,36},*p;

p=a;

printf("%d\n",(p+=3)[3]);

【10.9】下面程序的输出结果是______。

inti=3,j=1;

char*a="DCBA";

printf("%c%c\n",a[i],a[j]);

【10.10】以下函数的功能是:

把两个整数型指针所指向的存储单元中的内容进行交换。

请填空。

exchange(int*x,int*y)

{intt;

t=*y;

*y=_______;

*x=_______;

}

*【10.11】以下fun函数的功能是:

累加数组元素中的值,n为数组中元素的个数。

累加的和放入x所指向的存储单元中,请填空。

#include

voidfun(intb[],intn,int*x)

{intk,r=0;

for(k=0;k

r=;

=r;

}

intmain()

{inta[]={1,2,3,4},sum=0;

fun(a,4,&sum);

cout<

return0;

}

*【10.12】说明语句:

int(*p)();的含义是()

A.p是一个指向一维数组的指针变量

B.p是一个指针变量,指向一个整型数据

C.p是一个指向函数的指针,该函数的返回值是一个整数

D.以上都不对

*【10.13】设有说明int(*ptr)[M];其中的标识符是()

A.M个指向整型变量的指针

B.指向M个整型变量的函数指针

C.一个指向具有M个整型元素的一维数组的指针

D.具有M个指针元素的一维指针数组,每个元素都只能指向整型变量

*【10.14】已知:

d

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

当前位置:首页 > 总结汇报 > 工作总结汇报

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

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