《C语言程序》练习题Word格式文档下载.docx

上传人:b****6 文档编号:19531120 上传时间:2023-01-07 格式:DOCX 页数:20 大小:27.29KB
下载 相关 举报
《C语言程序》练习题Word格式文档下载.docx_第1页
第1页 / 共20页
《C语言程序》练习题Word格式文档下载.docx_第2页
第2页 / 共20页
《C语言程序》练习题Word格式文档下载.docx_第3页
第3页 / 共20页
《C语言程序》练习题Word格式文档下载.docx_第4页
第4页 / 共20页
《C语言程序》练习题Word格式文档下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

《C语言程序》练习题Word格式文档下载.docx

《《C语言程序》练习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《C语言程序》练习题Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。

《C语言程序》练习题Word格式文档下载.docx

则应填入()

A)intB)int*C)(*int)D)(int*)

8、若已知:

intx;

inty[];

则下面哪个表达式是有意义的()

A)&

xB)&

(x+y)C)&

5D)&

y

9、请读程序

f(char*s1)

{char*s2=s1;

while(*s2!

='

\0'

)s2++;

return(s2-s1);

{printf("

%d\n"

f("

1234567"

));

}

上面程序的输出结果是()

A)4(B)7(C)9(D)0N_001

10、已知结构eisei类型的变量a,其初始化赋值如下:

staticstructeiseia={"

20"

5,1.7691};

请写出结构eisei的类型定义()

A)eiseistruct{B}structeisei{

charname();

charname[];

intkodo;

floatshuki;

}doubleshuki;

C)structeisei{D)eiseistruct{

intname;

floatshuki;

}floatshuki;

二、填空(每空2分,共20分):

C源程序的基本单位是 

(1) 。

若a=1,b=4,c=3,则表达式!

(a<

b)||!

c&

&

1的值是 

(2) 。

若有定义intm=5,y=2;

,执行表达式y+=y-=m*=y后y的值是 (3) 。

a=3,b=2,c=1时,表达式f=a>

b>

c的值是 (4) 。

C语言中,二维数组的定义方式为:

类型说明符 数组名[(5)][(6)];

设有以下宏定义:

#defineWIDTH80

#defineLENGTHWIDTH+40

则执行赋值语句:

v=LENGTH*20;

(v为int型变量)后,v的值是 (7) 。

建立上图所示存储结构所需的说明语句是 (8) 。

建立上图所示给a输入数据的输入语句是 (9) 。

建立上图所示存储结构所需的赋值语句是 (10) 。

三、分析运行结果(每小题4分,共16分)

1、下面程序的运行结果是:

main()

{inti,j,a[2][3]={{2,4,6},{8,10,12}};

printf(“Theoriginalarrayis:

\n”);

for(i=0;

i<

2;

i++)

{for(j=0;

j<

3;

j++)

printf(“%4d”,a[i][j]);

printf(“\n”);

printf(“\ntheresultis:

for(i=0;

2、若输入的值是-125,以下程序的运行结果是:

#include”math.h”

{intn;

scanf(“%d”,&

n);

printf(“%d=”,n);

if(n<

0)printf(“-“);

n=fabs(n);

fun(n);

fun(intn)

{intk,r;

for(k=2;

k<

=sqrt(n);

k++)

{r=n%k;

while(r==0)

{printf(“%d”,k);

n=n/k;

if(n>

1)printf(“*”);

r=n%k;

}}

if(n!

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

3、下面程序的运行结果是:

{intva[10],vb[10],*pa,*pb,i;

pa=va;

pb=vb;

i++,pa++,pb++)

{*pa=i;

*pb=2*i;

printf(“%d\t%d\n”,*pa,*pb);

pa=&

va[0];

pb=&

vb[0];

{*pa=*pa+i;

*pb=*pb*i;

printf(“%d\t%d\n”,*pa++,*pb++);

4、以下程序的运行结果是:

{structEXAMPLE{

struct{intx;

inty;

}in;

inta;

intb;

}e;

e.a=1;

e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf(“%d,%d”,e.in.x,e.in.y);

四、程序填空(每空2分,共20分)

以下程序输出x,y,z三个数中的最大者。

请在____内填入正确的内容。

{intx=4,y=6,z=7;

int 

(1) ;

if( 

(2) )u=x;

elseu=y;

if( (3) )v=u;

elsev=z;

printf(“v=%d”,v);

2.下面程序的功能是在任意的字符串a中将与字符’c’相等的所有元素的下标值分别存放在整型数组b中。

请填空。

#include<

{chara[80];

inti,b[80],k=0;

gets(a);

a[i]!

=‘\0’;

if( (4) ){b[k]=i;

 (5) ;

k;

i++)printf(“%3d”,b[i]);

3.结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名和年龄。

请在____内填入正确内容。

staticstructman

{charname[20];

intage;

}person[]={“li-ming”,18,“wang-hua”,19,“zhang-ping”,20};

{structman*p,*q;

intold=0;

p=person;

for(;

p (6);

p++)

if(old<

p->

age)

{q=p;

 (7) ;

printf(“%s%d”, (8) );

4.以下程序能找出数组中的最大值和该值所在的元素下标,数组元素值从键盘输入。

请选择填空。

{intx[10],*p1,*p2,k;

for(k=0;

k<

10;

k++)scanf(“%d”,x+k);

for(p1=x,p2=x;

p1-x<

p1++)

if(*p1>

*p2)p2= (9) ;

printf(“MAX=%d,INDEX=%d\n”,*p2, (10) );

(9)A)p1B)p2[p1]C)x[p2]D)x-p1

(10)A)p1-xB)p1C)p2-xD)x-p2

五、编程(共24分)

1、编制程序:

输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一:

能同时被3、5、7整除。

能被其中两数(要指出哪两个)整除。

能被其中一个数(要指出哪一个)整除。

不能被3、5、7任一个整除。

2、试利用结构体类型编制一程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。

 

练习题二

一、单选题(共30分,每小题2分)

1、与代数式(x*y)/(u*v)不等价的C语言表达式是()。

A.x*y/u*vB.x*y/u/vC.x*y/(u*v)D.x/(u*v)*y

2、对于charcx=’\039’;

语句,正确的是()。

A.不合法         B.cx的ASCII值是33

C.cx的值为四个字符    D.cx的值为三个字符

3、假定x和y为double型,则表达式x=2,y=x+3/2的值是()。

A.3.500000B.3     C.2.000000D.3.000000

4、执行下列程序片段时输出结果是()。

intx=5,y;

y=2+(x+=x++,x+8,++x);

printf(“%d”,y);

A.13B.14C.15D.16

5、有输入语句:

scanf(“a=%d,b=%d,c=%d”,&

a,&

b,&

c);

为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是()。

A.132↙    B.a=1,b=3,c=2↙

C.a=1b=3c=2↙     D.1,3,2↙

6、对下述程序,是正确的判断()。

main()

{intx,y;

scanf(“%d,%d”,&

x,&

y);

if(x>

y)

 

x=y;

y=x;

else

x++;

y++;

printf(“%d,%d”,x,y);

A.若输入4和3,则输出3和4  B.若输入3和4,则输出4和5

C.有语法错误,不能通过编译    D.若输入4和3,则输出4和5

7、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()。

if(a<

b)

if(c<

d)x=1;

c)

if(b<

d)x=2;

elsex=3;

elsex=6;

elsex=7;

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

8、下述程序段的运行结果是()。

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

while(a<

b<

c){t=a;

a=b;

b=t;

c--;

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

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

9、以下程序段()。

x=-1;

do

{x=x*x;

while(!

A.是死循环B.循环执行2次C.循环执行1次D.有语法错误

10、以下能对二维数组a进行正确初始化的语句是()。

A.inta[2][]={{1,0,1},{5,2,3}};

;

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

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

D.inta[][3]={{1,0,1},{},{1,1}};

11、若有说明:

inta[3][4]={0};

则下面正确的叙述是()。

A.只有元素a[0][0]可得到初值0

B.此说明语句不正确

C.数组a中各元素都可得到初值,但其值不一定为0

D.数组a中每个元素均可得到初值0

12、如果在一个函数中的复合语句中定义了一个变量,则正确的说法是()。

A.该变量只在该复合语句中有效B.该变量在该函数中有效

C.该变量在本程序范围内均有效D.该变量为非法变量

13、对下面程序段:

#defineA3

#defineB(a)((A+1)*a)

x=3*(A+B(7));

正确的判断是()。

A.程序错误,不许嵌套宏定义B.x=93

C.程序错误,宏定义不许有参数D.x=21

14、下面程序段的运行结果是()。

charp[]="

abcdefghijklmn"

char*p1=p;

p1+=3;

strlen(strcpy(p1,"

ABCD123"

)));

A.8B.12C.11D.7

15、设有如下定义:

structsk

{intn;

floatx;

}data,*p;

若要使p指向data中的n域,正确的赋值语句是()。

A.p=&

data.n;

B.*p=data.n;

C.p=(structsk*)&

D.p=(structsk*)data.n;

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

1、C语言并不是一种严格的算法语言,大写字母与小写字母的意义相同()。

2、C语言是一种函数式语言,函数体是由若干说明语句和执行语句组成的。

( )

3、算法的特征的是有效性、确定性、有穷性、特殊性。

(   )

4、表达式a=3*5,a+a,a+3的值为18。

(   )

5、'

a'

和"

a"

没有区别,表示的都是字符常量a。

6、设有说明语句“intx;

”,则执行语句“x=7;

x+=x-=x+x;

”后x值为-7。

(   )

7、条件“2<x<3或x<-10”的C表达式是x>

2&

x<

3||x<

-10。

8、do-while语句与while语句的区别仅是关键字“while”出现的地方不同。

9、执行语句for(i=1;

i++<

4;

);

后i的值为5。

10、对for(表达式1;

表达式3)可理解为for(表达式1;

表达式3;

表达式3)。

三、程序阅读题(共44分)

1、写出以下程序运行的结果。

(5分)

{intx=9;

for(;

x>

0;

x--){

if(x%3==0){

printf(“%d”,--x);

continue;

2、写出下面程序运行的结果。

main()

{inta=10,y=0;

do{

a+=2;

y+=a;

if(y>

50)break;

}while(a=14);

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

3、下面程序段的功能是计算1000!

的末尾有多少个零,请填

(1)空使程序完整。

{

inti,k,m;

for(k=0,i=5;

i<

=1000;

i+=5)

{m=i;

while

(1){k++;

m=m/5;

k);

4、下面程序的功能是:

先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。

例如,当s中的字符串为:

“ABCDE”时则t中的字符串应为:

“EDCBAABCDE”;

判断下面程序的正误,如果错误请改正过来。

string.h>

{chars[80],t[200];

inti,sl;

gets(s);

sl=strlen(s);

for(i=0;

sl;

i++)t[i]=s[sl-i];

i++)t[sl+i]=s[i];

puts(t);

5、写出以下程序运行的结果。

voidmain()

{

staticchara[]="

Language"

b[]="

programe"

char*p1,*p2;

intk;

p1=a;

p2=b;

for(k=0;

=7;

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

%c"

*(p1+k));

6、下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填(3)空使程序完整。

班级:

姓名:

学号:

.

O…………O…………O…………O…………O装………O订………O线…………O…………O…………O…………O……………O

{intn,k=1,s=0,m;

for(n=1;

n<

=100;

n++){

k=1;

s=0;

1;

while

(2){

k*=m%10;

s+=m%10;

3;

if(k>

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

7、写出以下程序运行的结果。

(4分)

{intx=1,y=0,a=0,b=0;

switch(x){

case1:

switch(y){

case0:

a++;

break;

case1:

b++;

case2:

a++;

b++;

break;

case3:

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

8、写出下面程序的运行结果。

structn{intx;

charc;

};

func(structnb)

{b.x=20;

b.c='

y'

}

{structna={10,'

x'

};

func(a);

printf("

%d,%c"

a.x,a.c);

9、以下程序是求矩阵a,b的乘积,结果存放在矩阵C中并按矩阵形式输出,请填(3)空使程序完整。

{inta[3][2]={2,10,9,4,5,119},b[2][2]={-1,-2,-3,-4};

inti,j,k,s,c[3][2];

for(i=0;

i++)

for(j=0;

j<

j++){

1

for(k=0;

k++)s+=2

c[i][j]=s;

i++){

for(j=0;

j++)

printf(“%6d”,c[i][j]);

3;

四、编程题(共16分,每题8分)

1、编程实现查找一个字符串在另一个字符串中出现的次数。

2、如果整数A的全部因子(包括1,但不包括A本身)之和等于B;

且整数B的全部因子(包括1,但不包括B本身)之和等于A,则将整数A和B称为亲密数。

求3000以内(包括3000)的全部亲密数。

练习题三

以下叙述正确的是()

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行只能写一条语句

C)C程序的本身没有输入输出语句

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

2、设x,y和z都是int型变量,且x=2,y=3,z=4,则下面的表达式中值为0的表达式是()

A)x&

zB)(!

y==1)&

(!

z==0)

C)(x<

y)&

!

z||1D)x||y+y&

z-y

3、请读下面程序

{inti=8,j=10;

%d,%d,%d,%d"

i,j,++i,j++);

运算结果为()

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

4、当输入流为"

12345067891a36"

时,执行下面的程序段:

inti,j;

floatx,y;

charc;

scanf("

%2d%f%f%c%d"

&

i,&

y,&

c,&

j);

则变量i,j,x,y,c中的内容分别为()

A)12,345.000000,67891.000000,a,36

B)12345,无值,67891.000000,a,36

C)12345,67891.000000,97,3,6

D)输入格式有错,不能正确对这些变量赋值。

5、为了避免嵌套的条件语句if---

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

当前位置:首页 > 总结汇报 > 实习总结

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

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