十套C语言试题及前八套答案.docx

上传人:b****0 文档编号:18286663 上传时间:2023-08-15 格式:DOCX 页数:92 大小:61.43KB
下载 相关 举报
十套C语言试题及前八套答案.docx_第1页
第1页 / 共92页
十套C语言试题及前八套答案.docx_第2页
第2页 / 共92页
十套C语言试题及前八套答案.docx_第3页
第3页 / 共92页
十套C语言试题及前八套答案.docx_第4页
第4页 / 共92页
十套C语言试题及前八套答案.docx_第5页
第5页 / 共92页
十套C语言试题及前八套答案.docx_第6页
第6页 / 共92页
十套C语言试题及前八套答案.docx_第7页
第7页 / 共92页
十套C语言试题及前八套答案.docx_第8页
第8页 / 共92页
十套C语言试题及前八套答案.docx_第9页
第9页 / 共92页
十套C语言试题及前八套答案.docx_第10页
第10页 / 共92页
十套C语言试题及前八套答案.docx_第11页
第11页 / 共92页
十套C语言试题及前八套答案.docx_第12页
第12页 / 共92页
十套C语言试题及前八套答案.docx_第13页
第13页 / 共92页
十套C语言试题及前八套答案.docx_第14页
第14页 / 共92页
十套C语言试题及前八套答案.docx_第15页
第15页 / 共92页
十套C语言试题及前八套答案.docx_第16页
第16页 / 共92页
十套C语言试题及前八套答案.docx_第17页
第17页 / 共92页
十套C语言试题及前八套答案.docx_第18页
第18页 / 共92页
十套C语言试题及前八套答案.docx_第19页
第19页 / 共92页
十套C语言试题及前八套答案.docx_第20页
第20页 / 共92页
亲,该文档总共92页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

十套C语言试题及前八套答案.docx

《十套C语言试题及前八套答案.docx》由会员分享,可在线阅读,更多相关《十套C语言试题及前八套答案.docx(92页珍藏版)》请在冰点文库上搜索。

十套C语言试题及前八套答案.docx

十套C语言试题及前八套答案

试题一

一、填空题(每题2分,共20分)

1.表示条件:

1010&&x<100||x<0。

2.执行语句:

for(i=1;i++<4;)后,变量i的值是  4   。

3.在C语言中,写一个十六进制的整数,必须在它的前面加上前缀

ox。

4.利用减1运算符“--”,下面的两个语句

   b=5+a:

a-=1

  表达的功能,可以由一个语句来实现。

这个语句是 b=5+(a--)      。

5.任何一个数组的元素都具有相同的名字和储存空间。

6.有说明语句:

intx[][4]={{1},{2},{3}};那么元素x[1][1]的

取值是0。

7.在C语言中,指针就是一个地址。

8.如果指针变量p当前指向数组a的第I个元素a[i]。

那么表达式

*(--p)

的操作过程是

自减1后取第I-1个元素的地址。

9.如有以下说明:

floatnum[10]={0.0,1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9},

*p=&num[5];那么执行语句“p-=4;”后,指针p指向的元素是num[0]。

10.如果一个函数没有返回值,那么该函数的类型是void的。

二、单项选择(每题2分,共30分)

1.若变量已正确定义并赋值,下面符合C语言语法的表达式是B。

A.a:

=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

2.以下字符中,不正确的C语言转义字符是D。

A.\’B.\011C.\\D.\80

3.若已定义x和y为double型,则表达式x=1,y=x+3/2的值是。

A.1B.2C.2.0D.2.5

4.有如下说明,则数值为9的表达式是B。

A.*p+9B.*(p+8)C.*p+=9D.p+8

5.以下关于C语言字符数组的描述错误的是C。

A.字符数组可以存放字符串

B.字符数组中的字符串可以整体输入输出

C.可以在赋值语句中通过赋值运算符‘=’对字符数组整体赋值

D.不可以用关系运算字符数组中的字符串进行比较

6.若已定义:

inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

其中0≤i≤9,则对a数组元素不正确的引用是。

B

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

7.有如下程序段,执行该程序段后,a的值为B。

int*p,a=10,b=1;

p=&a;a=*p+b;

A.12B.11C.10D.编译出错

8.假如指针p1已经指向某个整型变量,要使指针p2也指向同一个变量,哪一个语句是正确的B。

A.p2=&p1;B.p2=**p1;C.p2=&*p1;D.p2=*p1

9.设有数组定义:

chararray[]=”china”;则数组array所占的空间为。

A.4个字节B.5个字节C.6个字节D.7个字节

10.执行语句x=(a=3,b=a--);后,x,a,b的值依次是D。

A.3,3,2B.3,2,2C.3,2,3D.2,3,2

11.若有以下定义:

int[3][2];则能正确表示t数组元素地址的表达式是B。

A.&t[3][2]B.t[3]C.t[1]D.*t[2]

12.设整型变量a,b,c均为2,表达式a+++b+++c++的值为B。

A.6B.9C.8D.表达式错误

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

A.在函数中,通过return语句传回函数值

B.在函数中,可以有多条return语句

C.在C中,main后的一对圆括号中也可以带有形参

D.在C中,函数的调用必须在一条独立的语句中完成

14.用B在函数间传递数据时,C语言不为形参分配新的存储区。

A.普通变量B.数组名C.数组元素D.指针变量

15.以下关于字符串与指针的描述,正确的是B。

A.字符串中的每个字符都是指针

B.可以用一个char*型指针指向字符串

C.字符串与指针等价

D.只有以“\0”结尾的字符串,才能用一个char*型指针指向其开头

三、判断题(每题1分,共10分)

1.“0x41”这个转义字符代表大写字母“A”。

(F)

2.如果数组说明中给出的初值个数小于数组长度,那么C编译会自动把剩余的元素初始话为与所列最后一个初值相同的取值。

(F)

3.若有说明:

chara[]=“abcde”;那么字符数组a的长度是6。

(Y)

4.有说明语句:

charb[10];,那么b=“china”;就把字符串“china”赋给了数组b。

(F)

5.一个指针变量中,可以存放任意类型变量的地址。

(F)

6.在C语言中,指针变量有自己的地址。

(Y)

7.有如下变量说明:

intx,*p;floaty,*q;由于P是指向int型变量的指针,q是指向float型的指针,因此p和q占用的内存字节数是不相同的。

(F)

8.在一个函数里,不能说明全局变量。

(F)

9.没有返回值的函数一定没有参数。

(F)

10.用普通变量或指针变量传递数据时,C语言总是把实参的值赋给形参。

()

四、程序写结果(每题4分,共12分)

1.阅读下面的程序,给出执行后变量gx的取值。

#include“stdio.h”

intgx;

voidsgb()

{

intgx;

gx=3;

}

voidfun()

{

gx=5;

sgb();

gx=gx*3;

}

main()

{

fun();

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

}

gx的值为6。

2.写出下面程序段的输出结果。

Voidmain()

{

chara[]=“ABCDEFGH”,b[]=“abCDefGH”;

char*p1,*p2;

intk;

p1=a;p2=b;

for(k=0;k<7;k++)

if(*(p1+k)==*(p2+k))

printf(“%c”,*(p1+k));

printf(“\n”);

}

结果为CDGH。

3.写出下列程序段的输出结果。

intfun(int*p,intn)

{inti,t;

t=*p;

for(i=1;i

if(t<(*p+i))t=*(p+i);

returnt;

}

voidmain()

{

inta[10]={10,23,1,3,4,0,-9,5,9,64};

intma;

ma=fun(a,10);

printf(“%d”,ma);

}ma的值为1340-95。

五、程序设计题(共28分,任选三题)

1.编写一个程序,求出所有各位数字的立方和等于1099的三位整数。

比如,379就是这样一个满足条件的三位数。

六、#include

intmain()

{

inti,j,k;

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

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

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

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

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

}

2.用函数calculate来统计一任意二维数组中负数的个数n,并返回n的值。

intcalculate(inta[4][5])

{

inti,j,n=0;

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

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

if(a[i][j]<0)n++;

returnn;

}

main()

{

inta[4][5]={{-45,65,34,64,76},{67,-87,45,86,89},{-67,87,54,78,97},

{-87,56,89,78,68}};

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

}

3.编写一个程序,它利用char型的指针变量指向一个字符串,并把字符串里的小写字母全部转换成大写字母。

#include“stdio.h”

main()

{

charstr[80];

printf(“enterastring:

”);

gets(str);

p=str;

while(*p!

=’\0’)

{if(*p>=’a’&&*p<=’z’);

*p-=32;

++p;

}

printf(“thestringafterconversionis:

%s\n”,str);

}

试题二

一、填空题:

1、C语言程序是由构成的,一个程序有且只有一个函数。

2、函数一般由和两部分构成。

3、C语言本身没有输入输出语句,输入和输出分别是由库函数和等函数来完成的。

4、C语言提供的基本数据类型有、、和。

5、设a=2,b=3,x=3.5,y=2.5,则表达式(float)(a+b)/2+(int)x%(int)y的值为.

6、从变量的作用域角度来分,可以分为变量和变量,从变量值存在的时间角

度来分,可以分为方式和方式。

7、按函数调用在程序中出现的位置来分,可以有三种函数调用方式,分别为、

、。

8、引用一个数组元素,可以用两种方法和。

9、数组元素a[I]的等价形式为。

二、选择题

1、若要求在if后一对圆括号中表示“a不等于0”的关系,则能正确表示这一关系的表达式为

A)a<>0B)!

a

C)a=0D)a

2、在C语言中,合法的字符常量是

A)'\084'B)'\x43'

C)'ab'D)"\0"

3、若已定义x和y为double类型,则表达式:

x=1,y=x+3/2的值是

A)1B)2

C)2.0D)2.5

4、在以下一组运算符中,优先级最高的运算符是

A)<=B)=C)%D)&&

5、下列合法的数组定义是

A)inta[]="string";B)inta[5]={0,1,2,3,4,5};

C)inta="string";D)chara[]={0,1,2,3,4,5};

6、若有定义和语句:

chars[10];s="abcd";printf("%s\n",s);

则结果是(以下u代表空格)

A)输出abcdB)输出a

C)输出abcduuuuuD)编译不通过

7、以下对C语言函数的有关描述中,正确的是

A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B)C函数既可以嵌套定义又可以递归调用

C)函数必须有返回值,否则不能使用函数

D)C程序中有调用关系的所有函数必须放在同一个源程序文件中

8、若有以下定义和语句:

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是

A)*pB)a[10]C)*aD)a[p-a]

9、若有定义和语句:

int**pp,*p,a=10,b=20;

pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);

则输出结果是:

A)10,20B)10,10

C)20,10D)20,20

10、若有以下定义:

chars[20]="programming",*ps=s;则不能代表字符o的表达式是

A)ps+2B)s[2]

C)ps[2]D)ps+=2,*ps

三、判断题

1、如果对a,b,c这三个变量赋初值,可以这样定义:

inta=b=c=3;()

2、continue语句和break语句的区别是:

continue语句只结束本次循环,而不是终止整个循环的执行,而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

()

3、若有定义charstr[13];那么使用的输入函数可以写成:

scanf(“%s”,&str);()

4、判断下列语句是否正确:

(1)chara[14];

a=”Ilovechina”;()

(2)charstr[]={“Ilovechina!

”};

str=str+7;

printf(%s”,str);()

四、阅读下列程序,写出运行结果

1、intast(intx,inty,int*cp,int*dp)

{*cp=x+y;

*dp=x-y;

}

main()

{inta,b,c,d;

a=4;b=3;

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

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

}

上面程序的输出结果是:

2、

#include

inta[]={2,4,6,8};

main()

{inti;

int*p=a;

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

a[i]=*p++;

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

}

上面程序的输出结果是:

3、

#include

main()

{inta,b;

for(a=1,b=1;a<=100;a++)

{if(b>=20)break;

if(b%3==1)

{b+=3;

continue;

}

b-=5;

}

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

}

上面程序的输出结果是:

五、编程题

1、编程找出200-300之间满足下列条件的数:

该数各位数字之和为12,之积为42。

#include

intmain()

{

inti,j,k;

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

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

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

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

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

printf("\n");

return0;

}

 

2、打印出以下图案:

 

*

***

*****

*******

*****

***

*

#include

#defineN100

intmain()

{

intk,i,j,a[N][N],b[N],d;

printf("请输入该菱形的行数(奇数):

");

scanf("%d",&d);

for(i=0;i

{

for(j=0;j

{

a[i][j]='';

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

}

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

{

a[i][j]='*';

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

}

printf("\n");

}

for(k=0;k

{

b[k]='*';

printf("%c",b[k]);

}

printf("\n");

for(i=0;i

{

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

{

a[i][j]='';

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

}

for(j=0;j

{

a[i][j]='*';

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

}

printf("\n");

}

return0;

}

试题三

一、选择题

1、.结构化程序设计所规定的三种基本控制结构是:

()

A、输入、处理、输出B、树形、网形、环形

C、顺序、选择、循环D、主程序、子程序、函数

2、以下程序的输出结果是()

main()120

{inti=010,j=10,k=0x10;

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

}

A、8,10,16B、8,10,10C、10,10,10D、10,10,16

3、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()

A、7B、8C、6D、2

4、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。

A、必须为字母

B、必须为下划线

C、必须为字母或下划线

D、可以是字母、数字和下划线中的任一种字符

5、执行语句:

printf("|%10.5f|\n",12345.678);的输出是()。

A、|2345.67800|B、|12345.6780|C、|12345.67800|D、|12345.678|

6、有以下程序

main()

{chara='a',b;

printf("%c,",++a);

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

}

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

A、b,bB、b,cC、a,bD、a,c

7、有以下程序

main()

{inti=0,s=0;

for(;;)

{if(i==3||i==5)continue;

if(i==6)break;

i++;

s+=i;

};

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

}

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

A、10B、13C、21D、程序进入死循环

8、若w=1,x=2,y=3,z=4,则条件表达式w

w:

y

y:

z的值是()。

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

9、putchar函数可以向终端输出一个()

A.整型变量表达式值

B.实型变量值

C.字符串

D.字符或字符型变量值

10、有如下程序段:

inta1,a2;

charc1,c2;

scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);

若要求a1,a2,c1,c2的值分别为10,20,A,B,正确的数据输入是()

A、10A20BB、10A20BC、10A20BD、10A20B

11、以下程序的执行结果是()

#include

main()

{inti=010,j=10;

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

}

A.11,10B.9,10C.010,9D.10,9

12、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的if

C.在其之前未配对的最近的ifD.同一行上的if

13、能够完成如下函数计算的程序段是()

-1x<0

y=0x=0

1x>0

A.y=-1;

if(x!

=0)

if(x>0)y=1;

elsey=0;

B.if(x>=0)

if(x>0)y=1;

elsey=0;

C.y=0;

if(x>=0)

if(x>0)y=1;

elsey=-1;

D.y=-1;

if(x>0)y=1;

elsey=0;

14、下面有关for循环的正确描述是()。

A、for循环只能用于循环次数已经确定的情况

B、for循环是先执行循环体语句,后判断表达式

C、在for循环中,不能用break语句跳出循环体

D、for循环体语句中,可以包含多条语句,但要用华括号括起来

15、C语言中while和do-while循环的主要区别是()。

A、do-while的循环体至少无条件执行一次

B、while的循环控制条件比do-while的循环控制条件严格

C、do-while允许从外部转到循环体内

D、do-while的循环体不能是复合语句

16、以下程序段()

A、是死循环B、循环执行二次C、循环执行一次D、有语法错误

17、以下关于数组的描述正确的是()

A、数组的大小是固定的,但一个数组中可以有不同类型的数组元素。

B、数组的大小是可变的,但一个数组中所有元素的类型必须相同。

C、数组的大小是固定的,但一个数组中所有元素的类型必须相同。

D、数组的大小是可变的,但一个数组中可以有不同类型的数组元素。

18、以下对二维数组a进行正确初始化的是()

A、inta[2][3]={{1,2},{3,4},{5,6}};

B、inta[][3]={1,2,3,4,5,6};

C、inta[2][]={1,2,3,4,5,6};

D、inta[2][]={{1,2},{3,4}};

19、设chars[10];*p=s;以下不正确的表达式是()

A、p=s+5;B、s=p+s;C、s[2]=p[4];D、*p=s[0];

20、设有说明int(*ptr)[M];其中ptr是()

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

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

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

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

21、如下程序的执行结果是()

#include

main()

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

int*p;

p=a;

*(p+3)+=2;

printf(“%d,%d\n”,*p,*(p+3));

}

A、1,3B、1,6C、3,6D、1,4

22、对于C语言的函数,下列叙述正确的是()

A、函数的定义不能嵌套,但函数调用可以嵌套

B、函数的定义可以嵌套,但函数调用不能嵌套

C、函数的定义和调用都不能嵌套

D、函数的定义和调用都可以嵌套

23、在说明一个结构体变量时,系统分配给它的存储空间是(),在说明一个共同体变量时,系统分配给它的存储空间是()

A、第一个成员所需存储空间

B、最后一个成员所需存储空间

C、占用最大存储空间的成员所需的存储空间

D、所有成员所需存储空间的总和

24、以下关于typedef的叙述不正确的是()

A、用typedef可以定义各种类型名,但不能用来定义变量

B、用typedef可以增加新类型

C、用typedef只是将已存在的类型用一个新的名称来代表

D、使用typedef便于程序的通用

二、填空题

1、算法的五个特性是

、、、、。

2、二维数组a[5][6]的第十个元素如何表示?

3、若x,i,j和k都是int型变量,则执行下面表达式后x的值为。

x=(i=4,j=16,k=32)

4、已知x=43,ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!

y)的值是_____。

5、

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

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

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

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