C语言模拟试题第三套Word格式文档下载.docx

上传人:b****7 文档编号:22624166 上传时间:2023-02-04 格式:DOCX 页数:29 大小:20.05KB
下载 相关 举报
C语言模拟试题第三套Word格式文档下载.docx_第1页
第1页 / 共29页
C语言模拟试题第三套Word格式文档下载.docx_第2页
第2页 / 共29页
C语言模拟试题第三套Word格式文档下载.docx_第3页
第3页 / 共29页
C语言模拟试题第三套Word格式文档下载.docx_第4页
第4页 / 共29页
C语言模拟试题第三套Word格式文档下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言模拟试题第三套Word格式文档下载.docx

《C语言模拟试题第三套Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言模拟试题第三套Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。

C语言模拟试题第三套Word格式文档下载.docx

printf("

C

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

()

x=y=z=1;

t=++x||++y&

&

++z;

A、0

B、1

C、2

D、不定值

B

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

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处填写正确语句()。

#include"

stdio.h"

main()

{intmin=0,a;

do{

scanf("

%d"

&

a);

if(min>

a)min=a;

}while(___A___);

printf("

min);

}

A、a=0

B、a==0

C、a>

0&

a<

D、a!

=0

7.设有如下程序段:

intk=10;

while(k==0)

k--;

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

A、循环体一次也不执行

B、循环体执行一次

C、死循环

D、循环体执行10次

8.staticcharstr[10]="

China"

;

数组元素个数为()。

A、6

B、9

C、5

D、10

9.函数调用:

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

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

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

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

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

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

A、#include"

B、main

C、printf

D、scanf

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

staticintx=10;

main()

{intx=3;

f();

x--;

x);

}

f()

{x++;

A、10

B、2

C、11

D、3

12.file1.c中有命令,#include<

file2.c>

若file2.c中有全局静态变量a,则().

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;

,则以下非法的赋值语句是()。

A、*p=*q;

B、n=*q;

C、p=n;

D、p=q;

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

main()

{charstr[]="

ABCD"

*p=str;

%d\n"

*(p+3));

A、68

B、不确定的值

C、字符D的地址

D、0

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

A、同时访问所有成员

B、进行动态管理

C、节省存储空间

D、简化程序设计

二、判断题

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

【学生答案】错误

未答此题

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

【参考答案】

错误

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

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

4.charc[6]="

abcde"

%3s"

c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.

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

(d+e)+f&

e+f*2的值为0.

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

b?

a:

(c>

d?

c:

d)的值为4.

正确

7.已知a=3,b=4,c=5.则逻辑表达式a+b>

c&

b==c值为0.

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

9.对于for(表达式1;

表达式2;

表达式3)语句来说,continue语句意味着转去执行表达式2.

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

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

12.定义intx[5],n;

则x=x+n;

或x++;

都是正确的.

13.语句charch[12]={"

CProgram"

};

与语句charch[]="

具有不同的赋初值功能.

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

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

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

17.若有宏定义:

#defineS(a,b)t=a;

a=b;

b=t由于变量t没定义,

所以此宏定义是错误的。

18.设有如下定义:

int*p;

*p=100;

则printf("

p);

的输出结果是100.

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

结构体"

类型.

20.在打开文件时,必须说明文件的使用方式,"

wb+"

表示以读/写方式打开一个二进制文件.

三、填空题

1.若有定义:

inta=10,b=9,c=8;

接着顺序执行下列语句后,变量c中的值是_____.c=(a-=(b-5));

c=(a%11)+(b=3);

【空1】错误

[无]

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("

*"

5.字符串的结束标志是_____.

\0

'

\0'

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

void

7.将函数funl的入口地址赋给指针变量p的语句是_____.

p=funl;

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

unionstud{shortintnum;

charname[8];

floatscore[3];

doubleave;

}d,stu[3];

12

四、程序设计

1./*------------------------------------------------

【程序设计】

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

功能:

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

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

longintfun(intn)

{

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

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

main()

inti=100;

voidTestFunc();

1~100的累加和为:

%ld\n"

fun(i));

TestFunc();

voidTestFunc()

FILE*IN,*OUT;

inti;

intiIN;

longintiOUT;

IN=fopen("

in.dat"

r"

if(IN==NULL)

{

PleaseVerifyTheCurrerntDir..ItMayBeChanged"

OUT=fopen("

out.dat"

w"

if(OUT==NULL)

PleaseVerifyTheCurrentDir..ItMayBeChanged"

for(i=0;

i<

5;

i++)

{

fscanf(IN,"

iIN);

iOUT=fun(iIN);

fprintf(OUT,"

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

voidfun(intarray[3][3])

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

}

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<

j++)

%7d"

array[i][j]);

\n"

}

fun(array);

Convertedarray:

NONO();

voidNONO()

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

FILE*rf,*wf;

rf=fopen("

"

);

wf=fopen("

fscanf(rf,"

&

array[i][j]);

fprintf(wf,"

array[i][j]);

fclose(rf);

fclose(wf);

【参考代码】

inti,j,t;

for(i=0;

for(j=0;

i;

{t=array[i][j];

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

array[j][i]=t;

五、程序改错

1./*------------------------------------------------------

【程序改错】

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

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

字的三位数?

都是多少?

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

inti,j,k;

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

for(i=1;

=5;

for(j=1;

j<

j++)

for(k=1;

k<

k++)

if(i!

=k||i!

=j||j!

=k)

%d,%d,%d\n"

i,j,k);

【改错1】错误

【改错2】错误

for(i=1;

=4;

【改错3】错误

if(i!

=k&

i!

=j&

j!

if((i!

=k)&

(i!

=j)&

(j!

=k))

2./*------------------------------------------------------

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

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

voidswap(int*p1,*p2)

intp;

p=*p1;

*p1=*p2;

*p2=p;

inta,b,*p,*q;

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

当前位置:首页 > 工程科技 > 能源化工

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

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