c语言模拟考试及答案_第1页
c语言模拟考试及答案_第2页
c语言模拟考试及答案_第3页
c语言模拟考试及答案_第4页
c语言模拟考试及答案_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言模拟考试及答案

作者:

日期:

个人收集整理,勿做商业用途

模拟试题

模拟试卷一

一、选择题

1.逻辑运算符两恻运算对象的数据

A.只能是。或1B.只能是。或非。正数

C.只能是整型或字符型数据D.可以是任何类型的数据

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

inta=023;

printf(*%d\nM,-a);

A.23B.17C.18D.24

3.若有定义:inta[3][4];下面不能表示数组a[l][1]的是.。

A.*(a[l]+l)B.C.(*(a+l))[l]D.*(a+5)

4.设有语句:charstrl[]=*string"»str2[8]r*str3,*str4=*string*;ML_不是对原函数strcpy的正确调用。

A.strcpy(strl,*HELL01*);B.strcpy(str2,"HELL02"):

C.strcpy(str3,*HELL03*");D.strcpy(str4,*HELL.O4*);

5.设有定义:inta[4][3]=”,2,3,4,5,6,7,8,9,10,11,12}:

int(*prt)[3]=a,*p=a[0];

则下列能够正确表示数组元素a[l][2]的表达式是。

A.*((*prt+l)[2])B.*(*(p+5))C.(*prt+l)+2D.*(*(a+l)+2)

6.有以卜程序

structabc

{inta,b,c;};

mainO

{structabcs[2]={(1,2,3},{4,5,6)}:intt;

t=s[0].a+s[l],b:

printf(*%d\n*tt);

}

程序运行后输出结果是一O

A.5B.6C.7D.8

7.有以下程序:

#include<stdio.h>

unionpw

{inti;charch[2]:}a;

mainO

个人收集整理,勿做商业用途

{a.ch[0]=13:a.chH1=0:printf(*%d\n*.a.i):)

程序的输出结果是——。

A.13B.14C.208D.209

8.已知字符0的ASCH码为十六进制的30,若有以卜程序

main。

{union{unsignedcharc;unsignedinti[4]:}z;

z.i[0]=0x38;

z.i[l]=0x36;

printf(*%c\n*,z.c);)

输出结果为一。

A.6B.8C.0D.3

9.若有定义chara=l,b=2,c=3;,则表达式a|b&'c的值为一。

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

10.以下程序的输出结果是。

main()

{charx=020:

printf(飞o'n",x«2):

}

A.100B.80C.64D.32

11.下列关于C语言数据文件的叙述中正确的是___。

A.文件由ASCII码字符序列组成,C语言只能读写文本文件

B.文件由二进制数据序列组成,C语言只能读写二进制文件

C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

0.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

12.若要打开D盘上lest子目录下名为abc.lxt的文本文件进行读、写操作,下面符合此要求的函数调用是

A.fopen(*D:\\test\\abc.txt*,*r*)B.fopen(*D:\\test\\abc.txt*,*r+*)

C.fopenCD:\\test\\abc.txt*,*rb*)D.fopen(*D:\\test\\abc.txt*,*w*)

13.若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是一。

A.EOFB.1C.非零值D.NULL

14.用fopen函数打开文件时,若文件使用方式参数为“r+”,则该文件.

A.只能读,不能写B,可以读、写,但文件必须存在

C.只能写,不能读D.可以读、写,若文件不存在则创建新文件

15.在打开的文件中,要获得文件位置指针的当前位置,应调用的库函数是_o

A.fseckB.frcadC.ftel1D.rewind

个人收集整理,勿做商业用途

二、填空题

1.C源程序的基木单位是O

2.一个C语句中至少应包含一个。

3.在C语言中,输入操作可以由库函数完成,输出操作可以由库函数___完成。

4.若x是int型变量,且x=6,则表达式x%2+(x+l)%2的值为。

5.若a、b、c均是ini型变量,则执行表达式c=(a=5)-(b=2)+a后,c的值为0

6.若有定义:inty=7;floatx=2.5,z=4.7;,则表达式x+(int)(y/3*Gnt)(x+z)/2)%4的值为_。

7.以下程序的功能是:输入三个整数nl、n2、n3,按从大到小的顺序进行输出。请雄空。

raain()

{intnl,n2,n3,temp:

scanf(*%d%d%d*.&nl.&n2,&n3);

if()

(temp=n2;n2=n3:n3=temp;}

if()

(temp=nl;nl=n2;n2=temp;}

printfC%d,%d,%d\n*»nl,n2,n3);

)

8.输入一个字符,如果它是一个大写字母,则把它变成小写字母:如果它是一个小写字母,则把它变成大写字母:其它字符不变。请填空。

main()

{charch1;

scanf("/c",chi):

if()

chl=chl+32;

elseif(chl>=,a*&&chl<=,z)

printfch!);

9.程序运行后的输出结果是一。

mainO

{inta=l,b=3,c=5;

if(c==a+b)printf(*ycs\n*);

elseprinif:

)

10.以下程序运行后的输出结果是

个人收集整理,勿做商业用途

mainO

{intx=10,y=20,t=0:

if(x—y)t=x;x=y;y=t;

printf(*%d,%d\n*,x,y):

}

11.以下程序运行后的输出结果是一。

mainO

{intx=10,y=20,t=0:

if(x=y)

{t=x;x=y;y=l;}

printf(*%d,%d\n*,x,y):

}

12.以下程序运行后的输出结果是__0

mainO

{inti,n»=0,n=O,k=0;

for(i=9:i<=ll:i++)

switch(i/10)

{case0:m++;n++;break;

case1:n++;break:

default:k++;n++;

)

printf(*%d%d%d\n*,m,n,k);

)

三、程序设计

1.请编写函数fun,它的功能是:求出ss所指字符串中、指定字符的个数,并返回此值。

2.写程序,实现矩阵(3行3列)的转苴(即行列互换)。

#include<stdio.h>

voidfun(intarray[3][3])

}

mainO

{inti,j;

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*+)

prinlf(飞7d",array[i][j]):

printfr\n*l;

个人收集整理,勿做商业用途

模拟试卷一参考答案

一、选择题

I.【答案】D

【解析】本题考查逻辑值的表示,在C语言中,非零就表示真,零表示假。

2.【答案】C

【解析】本题考查整数的表示形式和自减运算符.023是八进制,转化为十进制是19,所以一a的值是18.

3.【答案】D

【解析】本题考查二维数组元素的表示方法,D答案表示的是第5行第0列的地址,而不是数组元素。

4.【答案】C

【解析】strcpy函数的第一个参数必须是数组名或者是一个指向确定字符串的指针。不能是没有经过赋值的指针。

5.【答案】D

【解析】本题考查使用二维数组名和指向数组的指针变量表示二维数组元素的方法。注意行指针和列指针的表示方法,而通过行指针

是无法访问数组元素的,只能通过列指针访问,这样就筋要通过、”把行指针变成列指针。

6.【答案】B

【解析】本题考查结构体数组的概念,s[0].a的值为1,s[l].b的值为5。

7.【答案】A

【解析】本题考查共用体,共用体成员使用的是相同的存储区域,大小为最大的成员所占内存的大小,本题中的2个字节的存储区域,

低1字节存放13,高】字节存放0,所以输出这两个字节组成的值时输出13。

8.【答案】B

【解析】同上题.z.i[0]的值为十进制的56,输出z.c就是输出最低字节的值,而且以猊的形式输出,所以输出ascii码值为56的

字符8。

9.【答案】B

【解析】本题考查位运算的概念,把a,b,c转换成一.进制,按照优先级先算〜,再算&,最后,即可。

10.【答案】A

【解析】注意x被赋值为八进制的020,十进制为16,再左移2位,即乘以4,转换成八进制输出100.

11.【答案】D

【解析】本题考查C语言中的文件,C系统在处理文件时,并不区分数据的类型,都看成是字符流,按字节进行处理输入输出

字符流的开始和结束只由程序控制而不受物理符号(如回东符)的控制。因此也把这种文件称作“流式文件”。按数据的存放形式

分为二进制文件和文本文件。

12.【答案】B

【解析】C语言中使用fopen函数打开文件,由于路径使用飞“分隔,而飞”是转移符号的的引导符故使用表示

13.【答案】B

【解析】判断文件是否处于文件结束位践,如文件结束,则返回值为】,否则为0。

14.【答案】B

个人收集整理,勿做商业用途

【解析】对于文件使用方式有以‘下几点说明:

1.文件施用方式由十六个字符拼成,各字符的含义是:

r(read):读

w(write):写

a(append):追加

t(text):文本文件,可省略不写

b(banary):二进制文件

+:读和写

2.凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。

3.用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件•,若打开的文件已经存在,则将该文

件删去,重建一个新文件.

4.若要向•个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。

5.在打开一个文件时,如果出错,fopen将返回一个空指针值NULL在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的

处理。因此常用以下程序段打开文件:

if((fp=fopen(*c:\\hzkl6*,*rb*)—NIILL)

{

printf("\nerroronopenc:\\hzkl6file!*):

getchO;

exit(1);

}

6.把一个文本文件读入内存时,要将ASCII码转换成二进制码,而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文

本文件的读写要花贽较多的转换时间。对二进制文件的读写不存在这种转换。

7.标准输入文件(键盘),标准输出文件(显示疑),标准出错输出(出错信息)是由系统打开的,可直接使用。

15.【答案】C

【解析】「seek函数用来移动文件内部位置指针。

数据块读写函数(freadO和「write。)。

fseek函数(一般用于二进制文件)改变文件的位置指针.

ftell函数作用:得到流式文件中的当前位置,用相对于文件开头的位移量来表示。返回值:返回当前位置,出错时返回TL

二、填空题

1.函数

2.主函数或者main函数

3.scanf0printf0

4.1

5.8

个人收集整理,勿做商业用途

6.5.5

7.n2<n3nl<n2

8.chl〉='A'&&chl<='11chl=chl-32或者chl-=32

9.no

10.20,0

11.20,10

12.130

三、程序设计

1.参考答案:

#include<conio.h>

#include<stdio.h>

/defineM81

intfun(char*ss,charc)

{

}

mainO

{chara[M],ch:

clrscrO;

printf(*\nPleaseenterastrint:*);gets(a);

printf(w\nPleaseenterachar:*);ch=getchar();

printf(*\nThenumberofthecharis:%d\n*,fun(a,ch)):

I

2.参考答案

/*这题的关键在于进行行列卜标转换的算法,由矩阵的对称性可以看出在进行行列互换时a[j]在好是与互换,因而只要让程

序走完矩阵的左上角即可(用for(i=0;i<2;i++)再套for(j=i+l;j〈3;j++)来完成左上角的走动。*/

intfun(intarray[3][3])

{inti,j,t;

for(i=0:i<2;i++)

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

{t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;)

个人收集整理,勿做商业用途

模拟试卷二

一、选择题

I.下列叙述中正确的是

A.(:语言编译时不检杳语法B.C语番的子程序有过程和函数两种

C.C语言的函数可以嵌套定义D.C语言所有函数默认都是外部函数

以下关于C程序的说法中错误的是一

A.必须有•个且只能有•个主函数B.可以有任意多个不同名的函数

C.必须用main作为主函|数名D.主函数必须放在其他函数之前

3.以下选项中含有不合法注释的是一。

A.ini/♦aisNo.*/a,b;B.inta,/*aisNo.*/b;

C.inta,b/*aisNo.*/;D.inta,b;/*/♦aisNo.*/*/

4.关于C程序语句的说法错误的是—o

A.定义语句和执行语句均必须以分号结束B.一行中可以有多条语句

C.程序中的最后一条语句可以省略分号D.一条语句可以分写在多行

5.C语言源程序经编译后生成的目标文件扩展名为

A..cB..objC..exeD..h

6.C语言提供的合法的数据类型关键字是

A.DoubleB.shortC.integerD.Char

在C语言中,不正确的int类型的常数是一。

A.32768B.0C.037D.OxAF

8.在C语言中,合法的字符常量是一

A.''084'B.'\x43'D.'0'

9.设有intx=ll:则表达式(x++*1/3)的值是一

A.3B.4C.11D.12

10.能正确表示逻辑关系:或aWO”的C语言表达式是—。

A.a>=I0ora<=0B.a>=0|a<=10

C.a>=10&&a<=0D.a>=10IIa<=0

11.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是

A.INPUTx、y、z:B.scanf(飞湍d*d,,&x,&y,&z);

C.scanf(*%d%d%d*,x,y,z):D.rcad(*%d%d%d*»&x,&y,&z);

12.有以下说明和语句,且则对数组元素地址的正确表示是o

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

A.&(a+l)B.a++C.&pD.ap[i]

13.typedeflongintBG;的作用是

个人收集整理,勿做商业用途

A.建立一种新的数据类名/B.第1个整型变量

C.定义一个长整型变量D.定义一个新的数据类型标识符

14.定义变量:chars[5],c;registerintb;则正确的调用语句是。

A.scanf(*%s%c*,s,c):B.scanf&b,&c);

C.scanf(*%D%c*,b,&c):D.scanf(*%s%c*,s,&c);

15.设有如下说明

typedefstruct

{intn;charc;doublex;}STD;

则以下选项中,能正确定义结构体数组并赋初值的语句是一。

A.STDtt[2]={U,'A',62),{2,'B',75});

B.STDtt[2]=(l,*A*,62,2,*\75);

C.struct={{1,'A'),[2,'B')};

D.structtt[2]={{1,62.5},(2,*B*.75.OH:

二、填空题

1.若k、m为int整型变量,k被赋值11,有11>=1<++,则m值为,k的值为.

2.有以下程序段

intm=0,n=0:charc=,a*:

scanf(飞d%c%d”,&m,&c,&n):

printf%c,%d\n*»m,c,n);

若从键盘上输入:IOA1O<回车>,则输出结果是—(,

3.有以下程序

main()

(inti=10,j=l:

printf(*%d,$d\n",i—,++j);

执行后输出结果是»

4.以下程序段的输出结果是

charstr[]-"ABCD”,*p=str;

printf(4,%d\n",*(p+4)):

5.设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值是_

6.以下程序求a数组中的所有•素数的和,函数isprimc用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。

^include<stdio.h>

mainO

(inti,a[10],*p=a,sum=0;

printf("Enter10num:\n*);

个人收集整理,勿做商业用途

for(i=0;i<10;i++

scanf(*%d*,&a[i]);

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

if(isprime(*(p+________))==1)

{printfCM*,*(a+i)):sum+=*(a+i):

}

printf(*\nlhesum=%d\n”,sum);

)

isprime(x)

inix;

{inti;

for(i=2;i<=x/2;i++)

if(x%i==O)return(0);

|

7.以下程序的输出结果是一

inta=3;

mainO

{int.s=0;

{inta=5:

s+=a++:

}s+=a++;

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

8.以卜程序运行后的输出结果是—

mainO

{chars[]=“9876”,*p;

for(p=s;p;p++)printf(0%s\nM,p);

}

9.下面程序段的运行结果是一

i=l,s=3:

do

{s+=i++:

if(s%7==0)

continue;

个人收集整理,勿做商业用途

\else

++i;

}while(s<15);

printfi):

10.以下程序的运行结果是__

voidmain(void)

(

inta=l,k;

for(k=0;k<3:k++)

prinlf(飞4d",fl(a));

)

intfl(intx)

(staticintz=3,y=0:

y++;

z++;

return(x+y+z):

}

11.以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。

#include<stdio,h>

#include〈math.h>

floatfunl(float,float);

voidmain(void)

(

floatx,y,z,sum;

scanf&x,&y,&z);

sum=funl(______)+funl();

printf(*sum-%f\n*,sum);

)

floatfunl(floata,floatb)

{

floatnum;

num=a/b:

returnnum;

个人收集整理,勿做商业用途

12.若有以下定义和语句:

inta[4]={0,1,2.3),*p;

p=&a[2];

则*—P的值是_____。

三.程序设计题

1.设计程序从键盘上输入两个整数,然后交换这两个数,再输出交换后的这两个数。

2.从键盘输入一个正整数,判断该数是否为索数若是,输出yes,否则输出no。

个人收集整理,勿做商业用途

模拟试卷二参考答案

一、选择题

1.【答案】D

【解析】C语言编译时要进行语法检查,有语法错误的程序是不会执行的。C语言的基本单位是函数,没有其它概念如子过程、子程

序之类的概念。C语言的函数允许嵌套调用,但是不允许嵌套定义。为了使函数能够被其它文件的函数调用,函数默认都是外部函数。

2.【答案】D

【解析】C程序中只能有•个main函数,而且位置任意,不同的函数,函数名不同。

3.【答案】D

【解析】C语言的注释是/*……*/.可以出现在分隔符(空格、tab、回车)出现的位置,但不能嵌套。

4.【答案】C

【解析】C语言的语句必须有分号,分号是语句的组成部分,•行可以写•个或多个语句。•个语句也可以写在多行上,区分语句是

否结束只要看有没有遇到分号。

5.【答案】B

【解析】C语言中的源文件扩展名为.c,编译后生成.obj目标文件,经过链接生成可执行文件.exe。

6.【答案】B

【解析】C语言是区分大小写的,整型用ini表示而不是integer,

7.【答案】A

【解析】基本整型的范国是一32768〜+32767.在这个范围内的都用int表示.其次可以用0开头的八进制数表示,和Ox开头表示

的十六进制。

8.【答案】B

【解析】字符常量只能是单引号括起来的单个字符,或是'引导的转移符,若用八进制表示则是'\ddd',l到3位的八进制数,十六进

制‘\xhh'.1到2为的十六进制数。

9.【答案】A

【解析】x++,先取x的值和1相乘再和3整除,注意/两边都是整型数据,所以是整除.

10.【答案】D

【解析】C语言中两个条件同时成立用&&连接,多个条件成立一个即可,使用H连接。

II.【答案】B

【解析】使用scanf输入数据格式:scanf("格式控制符",变量的地址)

12.【答案】D

【解析】数组名a是常量,不能自增自减,可以通过指针加下标的形式访问数组元素如p[i].

】3.【答案】D

【解析】不能使用typedef产生新的数据类型,但可以根据定义已有的数据类型的别名。

14.【答案】D

【解析】b是寄存器变量,不能对寄存器变量取地址,使用%s输入字符串时,只需给出数组名即可,因为数组名就是地址了.

个人收集整理,勿做商业用途

15.【答案】A

【解析】注意有没有typedef,有则是定义一个结构体类型的别名STD,若没有则是定义一个结构体类型的同时,定义结构体变量。

二、填空题

1.1112

2.10,A,10

3.10,2

4.0

5.-12

6.ireturn1

7.8

8.9876

876

76

6

9.8

10.6810

11.x+y,x-yz+y,z-y

12.1

三.程序设计题

1.参考答案:

include<stdio.h>

voidmain()

(intx,y,t:

scanf&x,&y);

printf(*x=%d,y=%d\n",x,y);

t=x;

x=y;

y=t;

printf("x=$d,y=%d\n*,x,y);

}

2.参考答案:

#include<stdio.h>

#include<math.h>

voidmain()

个人收集整理,勿做商业用途

{intm,i,k;

scanf;

k=(int)sqrt(m);

for(i=2:i<=k:i++)

if(m%i=O)

break:

if(i<m)

printf(*no\n*);

else

prinlf(*yes\n*);

个人收集整理,勿做商业用途

模拟试卷三

一、选择题

L要把高级语言编写的源程序转换为目标程序,需要使用O

A.编辑程序B.驱动程序C.诊断程序D.编译程序

2.以下叙述中正确的是—。

A.C程序中注释部分可以出现在程序中任意合适的地方

B.花括号“{”和“}”只能作为函数体的定界符

C.构成C程序的基本单位是函数,所有函数名都可以由用户命名

D.分号是C语句之间的分隔符,不是语句的一部分

3.设有以下说明语句

typedefstruct

{intn;charch[6]:)TYP;

则下面叙述中正确的是—。

A.TYP是结构体变量名B.TYP是结构体类型名

C.typedefstruct是结构体类型D.struct是结构体类型名

4.以下说法中正确的是一°

A.^define和printf都是C语句B.^define是C语句,而prinlf不是

C.printf1是C语句,但#define不是D.#define和printf都不是C语句

5.设有以卜说明语句

structex

{inta;floatb;charc:}example:

则下面的叙述中错误的是—O

A.struct是结构体类型的关键字B.example是结构体类型名

C.a、b、c都是结构体成员名D.structex是结构体类型

6.C语言中的数据类型包括基本类型和_

A.构造类型、指针类型、空类型B.构造类型、指针类型、逻辑类型

C.指针类型、集合类型、逻辑类型D.口期类型、构造类型、指针类型

7.以下叙述正确的是——o

A.可以把include和else定义为用户标识符

B.可以把include定义为用户标以符,但不能把else定义为用户标识符

C.可以把else定义为用户标识符,但不能把include定义为用户标识符

D.include和else都不能定义为用户标识符

8.若变量a、i已正确定义,且i已正确赋值,合法的语句是——o

A.a—1B.++i;C.a=a++=5;D.a=int(i);

个人收集整理,勿做商业用途

9.有如下程序

inainO

{intx=l,a=0,b=0:

switch(x)

(case0:b++:

case1:a++;

case2:+a+;b++;

)

prinlf(Ha=%d,b=%d\nM,a,b);

1

该程序的输出结果是

A.a=2,b=lB.a=l,b=lC.a=l,b=OD.a=2,b=2

10.有以下程序

main()

{inti=l,j=l,k=2;

lk++)&&i++)

printf(*%d,%d,%d\n*»i,j,k):

)

执行后输出结果是

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

11.语句while(!E):中的条件!E等价于一。

A.E==0B.E!=1C.E!=0D.~E

12.函数调用语句中含有一个实参。

Fun(《al,a2)»(a3»a4,a5)»a6);

A.3B.4C.5D,6

13.在C语言中,只有•在使用时才占用存储空间的变量存储类型为0

A.static和autoB.register和auto

C.static和registerD.register和extern

14.以下程序的输出结果是^——.

/defineM(x,y,z)x*y+z

main()

{inta=l,b=2,c=3;

print!’("%d'n”,M(a+b,b+c,c+a));}

A.B.17C.15D.12

个人收集整理,勿做商业用途

15.设有以下语句,其中OWigO,则_不是对a数组元素的正确引用。

inta[10]=9,1,2,3,4,5,6,7,8,9),*p=a:

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

二、判断题

1.程序的执行总是从主函数开始,主函数执行完时,则程序执行结束。()

2.控制台标准输入设备一般是指键盘。()

3.do-while语句的循环体至少执行•次。

4.循环体中continue语句的作用是结束整个循环的执行。()

5.C语言规定,else子句总是与它上面的最近的if配对。()

6.数组的长度是固定的。

7.若有说明:inta[3][4];则a[l+l][0]是对a数组元素的正确引用。()

8.chara口=@1,2,3,4,5,6};不是正确的数组说明语句。()

9.字符串"This"大于字符串"that"。()

10.在用数组名作为函数实参时,传递的是数组的起始地址,所以就不允许使用形参数组的形式。()

11.如果在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,即它不起作用。()

12.预处理命令不是C语言本身的组成部分,不能直接对它们进行编译。()

13.全局变量可以被任何一个函数中的任何一个表达式使用。()

14.表达式i++与在任何场合功能完全相同.()

15.在赋值表达式中,隙值号左边的变量和右边的表达式之值的数据类型可以不相同。()

三、程序运行结果题

1.#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

tiinclude<string.h>

voidmain(void)

{charsi[101],s2[51];

intIL12,i;

printfC请输入字符串1:*):

gets(sl);

printf("请输入字符串2:");

gets(s2);

ll=strlen(sl):

12=strlen(s2);

for(i=0:i<12+l:i++)si[1l+i]=s2[i];

个人收集整理,勿做商业用途

*printf(si):

1

假设运行上述程序时,输入的2个字符串分别为ABCDEF,1234,则运行结果为()。

2.当运行以下程序时,从键盘键入right?,则卜面程序的运行结果是()。

^include<stdio.h>

voidmain(void)

{

charc:

while((c=gelchar())!='?')pulchar(++c);

}

3.如果运行以卜.程序段输入字符为“t”,则程序段的运行结果是()。

voidmain(void)

(

charc1;

scanf&cl);

cl=(cl>=A'&&cl<=Z,)?(cl+32):cl:

cl=(cl>-a'&&cl<=,z')?(cl-32):cl;

printf(*%c*,cl);

}

4.以卜程序的运行结果是(

-include<string.h>

voidmain()

{printfstrlen("school");)

5.以下程序的运行结果是()。

^defineA4

UdcfineB(x)A*x/2

voidmainO

(

floatc,a=4.5;

c=B(a);

printf(*%.lf\n*,c);

)

四、程序设计

l.输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32”9,输出要求有文字说明,取位2小数,

个人收集整理,勿做商业用途

2.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

个人收集整理,勿做商业用途

模拟试卷三参考答案

一、选择题

I.【答案】D

【解析】高级语言编写的源程序必须经过编译程序的编译,产生目标程序。源程序到目标程序有两种方式:编译方式和解释方式。

2.【答案】A

【解析】{}不仅是函数体的定界符还是第合语句的定界符。函数可以分为系统函数和用户自定函数.

3.【答案】B

【解析】使用lypedef定义了TYP结构体类型

4.【答案】D

【解析】编译预处理命令不是C语句,所以卷一个预处理命令后是没有分号的,printf是预定义函数名。

5.【答案】B

【解析】struct是定义结构体的关键字,structex是结构体类型,example是结构体变量名。

6.【答案】A

【解析】本题考查的是数据类型包含基本类型、构造类型、指针、空类型。C语言中没有逻辑类型、日期类型。

7.【答案】B

【解析】C语言关键字不能定义为用户自定义标识符,系统预定义标识符可以定义为用户自定义标识符,但改变了原来的意义,如irn

prinlf:

8.【答案】B

【解析】合法的语句,既然是语句就必须有分号,赋值号左边不能是表达式,强制类型转换时类型要用括号括起来。

9.【答案】A

【解析】switch语句中的caso语句如果没有break语句时,是要顺次往下执行的.

10.【答案】C

【解析】C语言对逻辑运算符I和&&运算符优化,即运算符左边为真时右边是没有被执行运算的。&&运算符左边为假(0)时,右

边也不用计算。

11•【答案】A

【解析】条件可以这样理解:当E等于。时成立。

12.【答案】A

【解析】注意函数的参数里边有两个逗号表达式,函数参数是表达式要先计算表达式的值,再进行参数传递.

13.【答案】B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论