c语言题目及答案Word文档下载推荐.docx

上传人:b****4 文档编号:18168045 上传时间:2022-12-13 格式:DOCX 页数:25 大小:21.42KB
下载 相关 举报
c语言题目及答案Word文档下载推荐.docx_第1页
第1页 / 共25页
c语言题目及答案Word文档下载推荐.docx_第2页
第2页 / 共25页
c语言题目及答案Word文档下载推荐.docx_第3页
第3页 / 共25页
c语言题目及答案Word文档下载推荐.docx_第4页
第4页 / 共25页
c语言题目及答案Word文档下载推荐.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

c语言题目及答案Word文档下载推荐.docx

《c语言题目及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言题目及答案Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。

c语言题目及答案Word文档下载推荐.docx

则循环结束后i的值为(B)

A)0B)1C)5D)10

8.执行下列程序段后,正确的结果是(C)

charx[8]={8,7,6,5,0,0},*s;

s=x+1;

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

A)nB)0C)5D)6

9.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:

A

A)单向值传递B)地址传递C)相互传递D)由用户指定方式

10.设有数组定义:

charstr[]=”China”;

则下面的输出为(C)

printf(“%d”,strlen(str));

A)4B)5C)6D)7

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

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

inti=19,j;

j=i%4;

printf(“%d”,j);

2.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。

voidfun2(int*x,int*y)

{

intt;

t=*x;

*x=*y;

*y=t;

voidfun1()

inta=20,b=30,c=25;

if(c>

b)fun2(__&

c,&

b____);

if(a<

c)fun2(__&

a,&

c____);

3.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:

B33<

回车>

,则输出结果是1B。

#include<

>

chara,b;

a=getchar();

scanf("

%d"

&

b);

a=a-'

A'

+'

0'

b=b*2;

printf("

%c%c\n"

a,b);

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

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

if(b<

a&

&

a<

c){t=a;

a=c;

c=t;

if(a<

c&

b<

c){t=b;

b=a;

a=t;

%d%d%d\n"

a,b,c);

5.若已知a=10,b=20,则表达式!

a<

b的值是___0______

6.若s是unsignedint型变量,则下面表达式的值是__1__。

s%2+(s+1)%2

7.下面程序将字符数组a复制到字符数组b中。

chara[]="

Iamaboy."

b[20];

inti;

for(i=___0____;

a[i]!

='

\0'

__b[i]=a[i]___________;

__b[i]=’\0’__;

8.若有inta[3][2]={{1},{3,2},{4,5}};

,则a[1][1]的值是2。

9.有以下程序,执行后输出结果是0。

main()

intt=1,i=5;

for(;

i>

=0;

i--)t*=i;

t);

}

10.在循环语句中,break语句的作用是是用来跳出当前一层循环的,continue语句的作用是终止本次循环。

三、写出程序的运行结果(30分,每题10分)

1.写出程序运行后的输出结果

main()

inta=1,b;

for(b=1;

b<

=10;

b++)

if(a>

=8)break;

if(a%2==1)

a+=5;

continue;

a-=3;

b);

输出结果:

b=4

2.写出程序运行后的输出结果

#include<

char*ss(char*s)

returns+strlen(s)/2;

{char*p,*str="

abcdefgh"

p=ss(str);

%s\n"

p);

efgh

3.写出程序运行后的输出结果

intf1(intx,inty){returnx>

yx:

y;

intf2(intx,inty){returnx>

yy:

x;

main()

inta=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d));

f=f1(f2(a,b),f2(c,d));

g=a+b+c+d-e-f;

%d,%d,%d\n"

e,f,g);

4,3,7

四、编程(完形填空)(20分,每题10分)

1.以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:

yes!

,否则函数返回字符串:

no!

,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:

adgda。

请填空。

char*huiwen(char*str)

char*p1,*p2;

inti,t=0;

p1=str;

p2=_____str+strlen(str)-1____;

str+strlen(str)

for(i=0;

=strlen(str)/2;

if(*p1++!

=*p2--)

{

t=1;

break;

}

if(_t==0或!

t _)t==0

return("

);

else

charstr[50];

Input:

scanf("

%s"

str);

___huiwen(str)_____);

huiwen(srt)

2.下面程序完成以下功能:

(1)trans()函数将二维数组a进行转置,即行列互换,如下图所示;

12341257

24692481

58973696

7162149721

转置前转置后

(2)findmin()函数求新数组中对角线(左上到右下)上的最小元素的值;

请将程序填写完整。

voidtrans(intb[4][4])/*转置函数*/

inti,j,temp;

for(i=0;

4;

for(j=_0__;

j<

j++)

temp=b[i][j];

b[i][j]=b[j][i];

b[j][i]=temp;

intfindmin(intb[4][4])/*求对角线上最小的元素*/

intmin,i,j;

min=_______;

if(__b[i][i]<

min___)

min=_b[i][i]____;

returnmin;

inti,j;

inta[4][4],min;

for(j=0;

a[i][j]);

trans(a);

printf(“theresultis:

”);

%5d"

a[i][j]);

\n"

min=_findmin(a)__;

theminis%5d\n"

min);

2份

1.下面那个变量是合法的。

(A)

A)_a_2B)12aC)D)_3-2

2.不能用于实型数据的运算符是:

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

3.下面正确的字符串常量是:

A)‘1+2=3’B)“1+2=10”C)[abcde]D){1234567}

4.程序段

inti,j;

i=10;

j=i--;

%d,%d"

i,j);

的输出应为:

A)9,9B)9,10C)10,9D)10,10

5.程序段

if(i==20)

break;

i)

A)21B)20C)10D)11

6.设有数组定义:

chararray[]=”Beijing”;

则数组array所占的存储空间为:

A)7个字节B)8个字节C)9个字节D)10个字节

7.以下说法正确的是(C)

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

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

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

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

8.程序段

int*p,a=1;

p=&

a;

*p=10;

a的值为:

A)1B)10C)不能确定D)11

9.以下定义语句中,错误的是(D)

A)inta[]={1,2};

B)char*a[3];

C)chars[10]="

test"

D)intn=5,a[n];

10.假定int类型变量占用两个字节,有定义:

intx[10]={0,2,4};

,则数组x在内存中所占字节数是(D)

A)3B)6C)10D)20

1.for(表达式1;

表达式2;

表达式3)

语句组

的执行顺序是先求解表达式1、再_计算表达式2__、如果成立则执行_一次for循环体___、然后__计算表达式3_

2.表达式:

765%2=____1___,765/2=___382____。

3.将下列字符串表示成字符串常量

D:

\office\word\"

\\office\\word\\"

_____

85%student"

85%studentpassed."

___________

4.下面程序段将字符数组b连接到数组a的后面。

chara[20]=."

Iam"

charb[]=."

astudent."

i=strlen(a);

for(j=__0___;

b[j]!

a[i+j_]=b[_j____];

a[_i+j]=__’\0’_;

}

5.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。

1.写出程序运行结果(10分)

inti=5;

staticcharc[6]="

abcd"

do

c[i]=c[i-1];

i--;

}while(i>

0);

puts(c);

运行结果是:

aabcd

voidf(int*x,int*y)

*x=*y;

*y=t;

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},i,*p,*q;

p=a;

q=&

a[11];

while(p<

q)

f(p,q);

p++;

q--;

12;

%d,"

a[i]);

运算结果是:

121110987654321

3.

(1)函数sub()的功能是什么

(2)写出程序运行的输出结果。

longsub(intnum)

longsubsum=1;

for(i=1;

=num;

subsum*=i;

return(subsum);

longsum=0;

=4;

sum+=sub(i);

sum%1d=%ld\n"

,i,sum);

i=1,sum=1

i=2,sum=3

i=3,sum=9

i=4,sum=33

1.写一个函数,实现将一个长度≤80的字符串按逆序存放。

解题要求:

该函数的唯一形参是字符串的起始地址。

voidconvert(charstring[])

intlength,mid,i;

chartemp;

length=___strlen_(string);

mid=__length-1_________;

for(__i=0________;

mid;

temp=__string[i]__________;

string[i]=string[_min--___];

string[(length-1)-i]=temp;

2.找出100以内(包括100)满足下列条件的正整数,并按每行4个数字的格式显示在屏幕上。

条件:

能被7整除但不能被9整除,或者不能被7整除但可以被11整除。

inti,count=__0____;

\nthesenumbersare:

for(i=1;

i_<

=__100;

if((i%7==0&

i%9!

=0)_||__(i%7!

=0_&

__i%11==0))

count++;

%10d"

i);

if(count%4==0)

__\n______"

3份

1.C语言中,最基本的数据类型包括:

A)整型、实型、逻辑型B)整型、字符型、数组

C)整型、实型、字符型D)整型、实型、结构体

2.下面正确的字符常量是:

3.C语言中,运算对象必须是整型的运算符是:

4.for(i=0;

if(i>

5)break;

则循环结束后i的值为(A)

A)6B)7C)9D)10

5.判断字符串a和b是否相等,应当使用:

A)if(a==b)B)if(a=b)

C)if(strcpy(a,b))D)if(strcmp(a,b)==0)

6.程序段

inti,a;

a=i;

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

7.C语言中的标示符只能有字母、数字和下划线组成,且第一个字符_D____.

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

C)必须为字母或下划线D)可以是字母或数字

8.若有说明:

charc=‘\72’;

则变量c:

A)包含一个字符B)包含2个字符

C)包含3个字符D)说明不合法,c的值不确定

9.以下说法正确的是(C)

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

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

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

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

10.int*p1,*p2,a[10];

p1=a;

p2=&

a[5];

则p2-p1的值为:

A)无法确定B)10C)5D)12

1.C语言中实型数据分为两种他们是__小数数形式_和_指数形式_。

2.在C语言中,逻辑真用_非零__表示,逻辑假用_零__表示。

3.若有定义:

doublex[3][5];

则x数组行下标的上限是__2__,列下标的下限是_0__。

4.表达式(a==b)&

(a>

b)的值是___0____。

5.已知’a’的ASCII码为97,printf(“%5c\n”,’e’)的输出是__e__;

printf(“%5d\n”,’e’)的输出是___101___。

6.下面程序将字符数组a复制到字符数组b中。

for(i=__0___;

____b[i]=a[i]_____;

______b[i]=’\0’_____;

7.下面程序的功能是计算1-3+5-7+…-99+101的值存在s中,请填空。

inti,t=1,s=0;

=101;

__i+=2___)

s=s+i*t;

t=___(-1)*t____;

}

8.若已知a=10,b=20,则表达式!

b的值是____0___

1.

(1)函数func()的功能是什么

(2)写出程序运行的输出结果。

intfunc(intx,inty)

intz;

z=x+y;

returnz;

intc;

inta=5;

intb=7;

c=func(a,b);

printf(“A+B=%d\n”,c);

A+B=12

intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

i++)

{for(j=0;

=i;

j++)

%4c"

'

'

for(j=i;

%4d"

num[i][j]);

****1***2***3***4

********6***7***8

***********11**12

***************16

(注意:

*表示空格)

3.

(1)程序的功能是什么

(2)写出程序运行的输出结果。

#definen8

inti,j,t,min,a[n]={65,55,90,100,40,70,5,20};

n-1;

min=i;

for(j=i+1;

n;

if(a[j]<

a[min])

min=j;

if(min!

=i)

t=a[min];

a[min]=a[i];

a[i]=t;

功能是:

从大到小排序

1009070655540205

1.编程将两个2*3的二维数组中的对应元素的值相加后存入第3个数组中。

inti,j,c[2][3]_;

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

intb[2][3]={7,8,9,10,11,12};

_i<

2_____;

_j<

3_____;

c[i][j]=a[_i__][_j__]+b[i][j];

2.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差,例如:

输入的两个字符

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

当前位置:首页 > 初中教育 > 其它课程

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

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