c模拟题6.docx

上传人:b****0 文档编号:18413929 上传时间:2023-08-16 格式:DOCX 页数:17 大小:19.37KB
下载 相关 举报
c模拟题6.docx_第1页
第1页 / 共17页
c模拟题6.docx_第2页
第2页 / 共17页
c模拟题6.docx_第3页
第3页 / 共17页
c模拟题6.docx_第4页
第4页 / 共17页
c模拟题6.docx_第5页
第5页 / 共17页
c模拟题6.docx_第6页
第6页 / 共17页
c模拟题6.docx_第7页
第7页 / 共17页
c模拟题6.docx_第8页
第8页 / 共17页
c模拟题6.docx_第9页
第9页 / 共17页
c模拟题6.docx_第10页
第10页 / 共17页
c模拟题6.docx_第11页
第11页 / 共17页
c模拟题6.docx_第12页
第12页 / 共17页
c模拟题6.docx_第13页
第13页 / 共17页
c模拟题6.docx_第14页
第14页 / 共17页
c模拟题6.docx_第15页
第15页 / 共17页
c模拟题6.docx_第16页
第16页 / 共17页
c模拟题6.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c模拟题6.docx

《c模拟题6.docx》由会员分享,可在线阅读,更多相关《c模拟题6.docx(17页珍藏版)》请在冰点文库上搜索。

c模拟题6.docx

c模拟题6

一、单项选择题

1、下列变量说明语句中,正确的是(D)。

A、chara;b;c;

B、char:

abc;

C、intx;z;

D、intx,z;

2、设以下变量均为int类型,则值不等于7的表达式是(A)。

A、(x=6,x+1,y=6,x+y)

B、(x=y=6,x+y,y+1)

C、(y=6,y+1,x=y,x+1)

D、(x=y=6,x+y,x+1)

3、设:

longw=65535,t=7654321;

根据下面的输出结果,正确的程序段是(C).

w=65535,t=7654321

end

A、printf("w=%5d,t=%7d\n",w,t);printf("%s","end');

B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end");

C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end");

D、printf("w=%5u,t=%7u\n",w,t);printf("end");

4、设x,y,z,t均为整型变量,则执行以下语句后,t的值为:

(B)

x=y=z=1;

t=++x||++y&&++z;

A、0

B、1

C、2

D、不定值

5、如果inta=2,b=3,c=0,下列描述正确的是(B)。

A、a&&b>c的结果为假

B、!

a!

=(b!

=c)表达式的值为1

C、a||(b=c)执行后b的值为0

D、a>b!

=c和a>(b!

=c)的执行顺序是一样的

6、从键盘输入的整数中找出最小值min,输入0时结束.请在A处填写正确语句(D)。

#include"stdio.h"

main()

{intmin=0,a;

do{

scanf("%d",&a);

if(min>a)min=a;

}while(___A___);

printf("%d",min);

}

A、a=0

B、a==0

C、a>0&&a<0

D、a!

=0

7、设有如下程序段:

intk=10;

while(k==0)

k--;

则下述说明中正确的是(A).

A、循环体一次也不执行

B、循环体执行一次

C、死循环

D、循环体执行10次

8、staticcharstr[10]="China";数组元素个数为(D)。

A、6

B、9

C、5

D、10

9、函数调用:

strcat(strcpy(str1,str2),str3)的功能是(D)。

A、将串str1复制到串str2中后再连接到串str3之后

B、将串str2连接到串str1之后再将串str1复制到串str3中

C、将串str1连接到串str2之后再复制到串str3之后

D、将串str2复制到串str1中后再将串str3连接到串str1之后

10、C语言程序中必须有的函数是(B)。

A、#include"stdio.h"

B、main

C、printf

D、scanf

11、程序运行结束后,屏幕上输出值为(B).

staticintx=10;

main()

{intx=3;

f();

x--;

printf("%d",x);

}

f()

{x++;

}

A、10

B、2

C、11

D、3

12、file1.c中有命令,#include,若file2.c中有全局静态变量a,则(B).

A、a在file1.c中应用extern说明.

B、a在file1.c中有效,不必用extern说明.

C、a在file1.c中不生效

D、a在file1.c和file2.c中均不生效.

13、若有说明:

intn=2,*p=&n,*q=p;,则以下非法的赋值语句是(C)。

A、*p=*q;

B、n=*q;

C、p=n;

D、p=q;

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

main()

{charstr[]="ABCD",*p=str;printf("%d\n",*(p+3));}

A、68

B、不确定的值

C、字符D的地址

D、0

15、使用共用体变量,不可以(A)。

A、同时访问所有成员

B、进行动态管理

C、节省存储空间

D、简化程序设计

二、判断题

1、在C语言中,各种类型的整型数据在内存中都占2个字节。

N

2、表达式(j=3,j++)的值是4.Y

3、格式字符%e以指数形式输出实数数字部分小数位数7位.N

4、charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.N

5、设d=1,e=2,f=3,则逻辑表达式!

(d+e)+f&&e+f*2的值为0.N

6、已知a=1,b=2,c=3,d=4,则条件表达式a>b?

a:

(c>d?

c:

d)的值为4.Y

7、已知a=3,b=4,c=5.则逻辑表达式a+b>c&&b==c值为0.Y

8、do-while循环由do开始,while结束,循环体可能一次也不做。

N

9、对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式2.N

10、在do-while循环中,任何情况下都不能省略while.Y

11、对静态变量的初始化不是在编译阶段完成的.N

12、定义intx[5],n;则x=x+n;或x++;都是正确的.N

13、语句charch[12]={"CProgram"};与语句charch[]="CProgram";具有不同的赋初值功能.Y

14、数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.N

15、变量根据其作用域的范围可以分作局部变量和全局变量.Y

16、当变量的存储类型定义缺省时,系统默认为变量的存储类型为auto类型,分配在静态区.N

17、若有宏定义:

#defineS(a,b)t=a;a=b;b=t由于变量t没定义,

所以此宏定义是错误的。

N

18、设有如下定义:

int*p;*p=100;则printf("%d",p);的输出结果是100.N

19、使几个不同的变量共占同一段内存的结构,称为"结构体"类型.N

20、在打开文件时,必须说明文件的使用方式,"wb+"表示以读/写方式打开一个二进制文件.Y

三、填空题

1、若有定义:

inta=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是_____.c=(a-=(b-5));c=(a%11)+(b=3);9

2、getchar()函数只能接收一个_____.字符

3、当a=1,b=2,c=3时,执行以下程序段后b=_____.if(a>c)b=a;a=c;c=b;2

4、abcde<回车>,则以下while循环体将执行_____次.while((ch=getchar())=='e')printf("*");0

5、字符串的结束标志是_____.'\0'0

6、如果函数不要求返回值,可用_____来定义函数为空类型.void

7、将函数funl的入口地址赋给指针变量p的语句是_____.p=funl;小写的L,不是数字一

8、设有以下共用体类型说明和变量定义,则变量d在内存所占字节数是_____。

unionstud{shortintnum;charname[8];floatscore[3];doubleave;}d,stu[3];12

四、程序设计

1、/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

用do-while语句求1~100的累计和。

------------------------------------------------*/

#include"stdio.h"

longintfun(intn)

{

/*********Begin**********/

 

/**********End**********/

}

main()

{

inti=100;

voidTestFunc();

printf("1~100的累加和为:

%ld\n",fun(i));

TestFunc();

}

voidTestFunc()

{

FILE*IN,*OUT;

inti;

intiIN;

longintiOUT;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

}

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

{

fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%ld\n",iOUT);

}

fclose(IN);

fclose(OUT);

}

【参考代码】

inti=1,sum=0;

do

{sum=sum+i;

i++;

}while(i<=n);

returnsum;

2、/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

编写程序,实现矩阵(3行3列)的转置(即行列互换)

例如:

输入下面的矩阵:

100200300

400500600

700800900

程序输出:

100400700

200500800

300600900

------------------------------------------------*/

#include"stdio.h"

voidfun(intarray[3][3])

{

/*********Begin**********/

/**********End**********/

}

main()

{

inti,j;

voidNONO();

intarray[3][3]={{100,200,300},

{400,500,600},

{700,800,900}};

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

{

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

printf("%7d",array[i][j]);

printf("\n");

}

fun(array);

printf("Convertedarray:

\n");

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

{

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

printf("%7d",array[i][j]);

printf("\n");

}

NONO();

}

voidNONO()

{

inti,j,array[3][3];

FILE*rf,*wf;

rf=fopen("in.dat","r");

wf=fopen("out.dat","w");

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

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

fscanf(rf,"%d",&array[i][j]);

fun(array);

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

{

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

fprintf(wf,"%7d",array[i][j]);

fprintf(wf,"\n");

}

fclose(rf);

fclose(wf);

}

【参考代码】

inti,j,t;

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

for(j=0;j

{t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;}

===============

【或】

inti,j,t;

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

for(j=i+1;j<3;j++)

{

t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

}

五、程序改错

1、/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

有1、2、3、4个数字,能组成多少个互不相同且无重复数

字的三位数?

都是多少?

------------------------------------------------------*/

#include"stdio.h"

main()

{

inti,j,k;

/**********ERROR**********/

printf("\n")

/**********ERROR**********/

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

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

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

{

/**********ERROR**********/

if(i!

=k||i!

=j||j!

=k)

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

}

}

【参考答案】

printf("\n");

【参考答案】

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

【参考答案】

if(i!

=k&&i!

=j&&j!

=k)

2、/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

以下程序把两个数按由大到小的顺序输出来.

------------------------------------------------------*/

#include"stdio.h"

/***********ERROR***********/

voidswap(int*p1,*p2)

{

intp;

p=*p1;

*p1=*p2;

*p2=p;

}

main()

{

inta,b,*p,*q;

printf("inputa,b:

");

/***********ERROR***********/

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

p=&a;

q=&b;

if(a

swap(p,q);

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

/***********ERROR***********/

printf("max=%d,min=%d\n",p,q);

}

【参考答案】

swap(int*p1,int*p2)

【参考答案】

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

【参考答案】

printf("max=%d,min=%d\n",*p,*q);

六、程序填空

1、/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

计算平均成绩并统计90分以上人数。

-------------------------------------------------------*/

#include"stdio.h"

main()

{

intn,m;floatgrade,average;

/***********FILL***********/

average=n=m=_____;

while

(1)

{

/***********FILL***********/

_____("%f",&grade);

if(grade<0)break;

n++;

average+=grade;

/***********FILL***********/

if(grade<90)_____;

m++;

}

if(n)printf("%.2f%d\n",average/n,m);

}

【参考答案】

0

【参考答案】

scanf

【参考答案】

continue

2、/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

通过函数的递归调用计算阶乘。

-------------------------------------------------------*/

#include"stdio.h"

longpower(intn)

{

longf;

if(n>1)

/***********FILL***********/

f=_____;

else

f=1;

return(f);

}

main()

{

intn;

longy;

printf("inputainteagernumber:

\n");

/***********FILL***********/

scanf("%d",_____);

y=power(n);

/***********FILL***********/

printf("%d!

=%ld\n",n,_____);

}

【参考答案】

power(n-1)*n

power(n-1)*n

n*power(n-1)

【参考答案】

&n

【参考答案】

power(n)

y

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

当前位置:首页 > 党团工作 > 其它

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

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