文档库 最新最全的文档下载
当前位置:文档库 › 江苏计算机等级考试C语言考前冲刺模拟试卷

江苏计算机等级考试C语言考前冲刺模拟试卷

江苏计算机等级考试C语言考前冲刺模拟试卷
江苏计算机等级考试C语言考前冲刺模拟试卷

江苏计算机等级考试C语言考前冲刺模拟试卷

1.以下关于微电子技术的叙述中,错误的是_____________

集成电路芯片是微电子技术的结晶,它是计算机和通信设备的硬件核心,是现代信息产业的基础

集成电路根据包含的电子元件数目分为小规模,中规模,大规模、超大规模和极大规模集成电路

小规模集成电路以简单的门电路或单级放大器为集成对象

随着微米、亚微米量级的微细加工技术的采用和硅抛光片面积的增大,集成电路的规模越来越小

2.以下关于通信技术的叙述中,错误的是_________________

通信系统中被传输的信息必须以某种电(或光)信号的形式才能通过传输介质进行传输

多路复用技术有两种,时分多路复用和频分多路复用,其中频分多路复用是指以事先规定的顺序轮流使用同一传输线路进行数据传输

模拟通信的优点是结构比较简单,成本低,数字通信传输的是数字信号

微波是一种极高频率的电磁波,波长很短,通常为1m—1mm

3.使用8个二进制位来表示整数的编码时,十进制-88对应的原码与补码分别是_______

A.11011000 和 10100111

B.01011000和10101000

C.11011011 和 10100111

D.11011000和10101000

4. .在PC机中,各类存储器的速度由高到低的次序是________。

A.Cache、主存、硬盘、软盘

B.主存、Cache、硬盘、软盘

C. 硬盘、Cache、主存、软盘

D. Cache的、硬盘、主存、软盘

5.下面关于计算机局域网特性的叙述中,服务错误的是________。

A. 数据传输速率高

B. 通信延迟时间短、可靠性好

C. 可连接任意多的计算机

D. 可共享网络中的软硬件资源

6. 下列关于计算机组成及功能的说法中,正确的是__________。

A.一台计算机内只能有一个CPU

B.外存中的数据是直接传送给CPU处理的

C. 多数输出设备的功能是将计算机中用“0”和“1”表示的信息转换成人可直接识别的形式

D. I/O设备是用来连接CPU、内存、外存和各种输入输出设施并协调它们工作的一个控制部件

7. .键盘、显示器和硬盘等常用外围设备在操作系统启动时都需要参与工作,所以它们的驱动程序都必须预先存放在________中。

A. 硬盘

B. BIOS ROM

C. 内存

D. CPU

8.在计算机加电启动过程中,1.POST程序、2. 操作系统、3.引导程序、4.自举装入程序,这四个部分程序的执行顺序为________。

A. 1、2、3、4

B. 1、3、2、4

C. 3、2、4、1

D. 1、4、3、2

9.以下关于操作系统中多任务处理的叙述中,错误的是:________

A. 将CPU时间划分成许多小片,轮流为多个程序服务,这些小片称为"时间片"

B. 由于CPU是计算机系统中最宝贵的硬件资源,为了提高CPU的利用率,一般采用多任务处理

C. 正在CPU中运行的程序称为前台任务,处于等待状态的任务称为后台任务

D.在单CPU环境下,多个程序在计算机中同时运行时,意味着它们宏观上同时运行,微观上由CPU轮流执行

10.广域网是一种跨越很广的的计算机网络,下面关于广域网的叙述中,正确的是___________

A.广域网是一种公用计算机网,所有计算机都可无条件的接入广域网

B.广域网使用专门的通信线路,数据传输更高

C.广域网能连接任意多的计算机,也能将相距任意距离的计算机互相连接起来

D.广域网像很多局域网一样按广播方式通信

11.当局域网中一台计算机向同一网络中的另一台计算机发送数据帧时,在数据帧中必须包含发送方主机和接收方主机的_____________

A.MAC地址

B.IP地址

C.域名

D.计算机名

12.网络服务是指用户通过计算机网络在共享资源及数据通信方面能够得到的新增功能,下面关于网络服务的叙述中,错误的是_____________

A.文件服务允许网络用户使用网络上其他计算机中可共享的程序和数据

B.应用服务是指网络用户需要执行的某项任务,部分甚至全部可由网上的另一台计算机完成

C.连接在网络上的计算机只要有帐号就可以获得他所需要的服务

D.消息服务允许网络用户之间能相互通信,互相传递消息

13.以下汉字编码中,不再我国大陆使用而在台湾与香港地区使用的是___________

A.GB18030

B.GBK

C.GB2312

D.BIG5

14.以下关于图像与图形说法错误的是_____________

A.图像获取的过程实际上是模拟信号的数字化过程

B.一幅取样图像由M*N个取样点组成,每个取样点表示一个像素

C.数据压缩分为无损和有损压缩,有损压缩是指对压缩的图像还原时,会影响到人们对图像的正确理解

D.BMP是微软公司在Windows操作系统下使用的一种标准图像文件格式

15.以下对数字声音的叙述中错误的是______________

A.声音信号的数字化过程包括:取样,量化,编码

B.声卡既参与声音的获取也负责声音的重建

C.声音的重建是声音信号数字化的逆过程,分为三步:解码,数模转换,插值处理

D.声音的获取设备包括麦克风和声卡,麦克风的作用是把电信号转换为声波

16.彩色图像所使用的颜色描述方法称为颜色模型,显示器使用的颜色模型为RGB三基色模型,彩色喷墨打印机在打印彩色图像时所使用的颜色模型是___________

A.YUV

B.HSB

C.CMYK

D.RGB

17.人们说话时所产生的语音信号必须数字化之后才能由计算机存储和处理,假设语音信号数字化时的取样频率为8KHZ,量化精度为8位,数据压缩倍数为4倍,那么1分钟数字语音的数据量是___________ A.960KB B.480kb C.120kb D.60kb

18.把全局E-R模型图转化称关系模式的结构,属于数据库系统设计的________

A.逻辑结构设计

B.概念结构设计

C.物理结构设计

D.程序结构设计

19. 下列有关Windows98/2000/XP操作系统的叙述中,错误的是_________________。

A.任务栏上的“快速启动”工具栏可以关闭。

B.对于中文版的Windows操作系统来说,任务栏上显示的输入法指示图标不能被关闭。

C.即使计算机未物理连接打印机,也可以安装多个打印机驱动程序。

D.在“我的电脑”的“属性”窗口中可以查看当前计算机的内存的大小

20. 在Windows操作系统和Office软件环境下操作时,下列操作中不能实现的是 _____________。

A.在“Windows资源管理器”窗口中同时选中多个不连续的文件与文件夹。

B.在Word编辑窗口中同时选定多个不连续的段落。

C.在Word编辑窗口中同时选定多个绘制的图形对象。

D.在Excel编辑窗口中同时选定多个不连续的单元格。

C程序设计部分

一:选择题:

21.当需要定义一个函数时,以下标识符中,__________(21)___________不能用作函数名。

A.scanf

B.for

C._sum

D.F2

22.已有声明语句”unsigned char ch;”,与表达式”ch=’B’”的值不相同的表达式是

_____(22)______(注释:字符A的Ascii码以十进制表示为65)

A.ch=0x42

B.ch=0102

C.ch=’\102’

D.ch=066

23.若要对a进行++运算,则a应具有以下说明_______(23)_______

A.int a[3][2]

B.char *a[]={“12”,”ab”};

C.int b[10],*a=b;

D.char (*a)(char);

24.以下对于break语句使用的正确描述是______(24)___________

A.可以出现在程序中的任何位置

B.只能出现在循环或switch结构中

C.只能出现在switch结构中

D.只能出现在循环结构中

25.若有声明语句”int a=5,b=4,c=3,*p=&a;”,则下列________(25)__________表达式语句是正确的。

A.(*p)++=c;

B.*(*p)++;

C.printf(a%4= =0?”%3d\n”:”%3d”,*p);

D.a>20?return *p-20:return *p-1;

26.设”int x=2,y=3,z=(++x<=y--)?((--y= =1)?y--:--y):y--;”,则x,y,z的值为____________

A.3,0,1

B.2,0,0

C.3,1,1

D.2,2,1

27.下列程序段执行后的结果为____(27)__________

main()

{

struct int a[3][3]={1,3,5,7,9,11,13,15,17},y,x,*p=&a[2][2];

for(x=0;x<3;x++) y+=*(p-4*x);

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

}

A.45

B.33

C.17

D.27

28.设有函数f的定义如下;

void f(int x,int *y)

{ *y=x*x*x;}

main()

{int i,c[4]={1,2,3,4},s[4]={0};

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

{______________/*调用f函数*/

printf("%d",s[i]);}

若在main函数中欲调用f函数,则正确的调用语句是 ____(28)______

A.f(c,s);

B.f(c[i],s[i]);

C.f(*(c+i),&s[i]);

D.f(c+i,s+i);

29.设有定义如下;

typedef stuct{int x,y;}POINT;

typedef enum{RED,YELLOW,BLUE,GREEN}COLOR;

struct

{POINT xy;COLOR c;}pixel,*p=&pixel;

以下对变量pixel的赋值操作中正确的是 (29) 。

A.pixel={1,2,BLUE};

B.P->xy.x=1;p->xy.y=2;p->c=BLUE;

C.scanf("%d%d%d",P->xy.x,P->xy.y,&pixel.c);

D.scanf("%d%d,,,&pixel.xy);pixel.color=2;

30.执行了以下程序段后,x、w的值为___(30)_________

int x=0,y=1,z=2,w;

if(x++) w=x;

else if(x++&y>=1) w=y;

else if(x++&&z>1) w=z;

A.0、1

B.1、1

C.2、1

D.3、2

二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占-行)

●基本概念题(共5分)

1.一个用c语言编写的程序必须有-个并且只能有-个_____(1)____函数。

2.若有定义"int k=1;",执行语句"while(k++<5);"后,k的值为______(2)_____。

3.在程序中需要调用库函数sqrt时必须包含头文件:_____(3)________ 。

4.已知声明语句:"FILE *fpl,*fp2;long a[2]={12345678,12345678};",当执行了以下语句

后,文件f1.dat和f2.dat长度分别是____(4)_____字节和____(5)______字节。

fpl=fopen("f1.dat","w");fprintf(fpl,"%ld%ld",a[0],a[1]);fclose(fpl);

fp2=fopen("f2.dat","wb");fwrite(a,sizeof(long),2,fp2);fclose(fp2);

●阅读程序题(共7分)

5.以下程序运行后输出____(6)____

#include

int f(char *sl,char *s2)

{static int nl,n2;

while(*s1++)n1++;

while(*s2++)n2++;

return n1-n2;

}

main()

{printf("%d",f("c:\\program","\12a\t34\n"));}

6?下列程序执行后,x的值为____(7)______

main()

{int x,y;

for(x=1,y=1;x<=100;x++)

{if(y>=20)break;

if(y%3==1){y+=3;continue;}

y-=5;

}

printf("%d\n",x);

}

7.以下程序运行时输出_____(8)________

#include

#include

main()

{char s[20]="acef",sl[]="bd";

int i,j,k;

for(k=0;sl[k]!='\0';k++)

{j=0;

while(sl[k]>=s[j]&&s[j]!='\0')j++;

for(i=strlen(s);i>=j;i--)s[i+1]=s[i];

s[j]=sl[k];

}

puts(s);

}

8.以下程序运行时输出结果的第-行是___(9)_____,第二行是____(10)______。 int m=5,n=7,a[10]={0,1,2};

void fl(void);

void f2(int m);

main()

{ int i;

for(i=0;i<7;i++)fl();

f2(1);printf("\n%d,%d",a[m],a[n]);

}

void fl(void)

{static int n=3;

a[n]=a[n-1]+a[n-2]+a[n-3];n++;

}

void f2(int m)

{for(;m<3;m+=2)

{int m;

for(m=1;m<4;m++)

printf("%d,",a[m++]);

}

}

9.以下程序运行后输出结果的第-行是__(11)_____,第二行是___(12)______ 。 extern int m1,m2;

void fun(int n,int *p1,int *p2)

{int i;

*p1=1;*p2=1;

for(i=1;i<=n;i++){*p1+=3;*p2*=3;}

m1+=*p1;m2+=*p2;

}

int m1,m2;

main()

{

int i,k1[4],k2[4];

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

fun(i,&k1[i],&k2[i]);

for(i=0;i<4;i++) printf(“%d,”,k1[i]);

printf(“%d\n”,m1);

for(i=0;i<4;i++) printf(“%d,”,k2[i]);

printf(“%d”,m2);

}

完善程序题(共18分)

10.以下程序中函数encode完成一个字符串的加密功能,将s1字符串中的字符经过变换后保存到s2指向的字符数组中,二维数组cs保存了一个明码密码对照表,第一行是明码字符,第二行是对应的密码字符,加密方法如下:从s1字符串中每取一个字符,均在cs表第一行中查找有无该明码字符,若找到则将对应的密码字符放入s2中,否则将s1中原来的字符放入s2中。

#include

#include

char cs[2][10]={“aceghjlnp”,”fonptiude”};

void encode(char *s1, char *s2)

{

int n,i,j;

for(n=0;s1[n]!=’\0’;n++)

{

for(i=0;i<10&&s1[n]!=cs[0][i];_______(13)____)

if(i<10) s2[n]=______(14)_____;

else s2[n]=______(15)_______;

}

s2[n]=’\0’;

}

main()

{

char ts[80]=”jntwrnwt”, td[80];

encode(ts,td);

puts(td);

}

11.以下程序依次输入某单位每位职工的姓名和工资数(整型数),然后计算发放工资时所需

发给每位职工的不同面值的纸币张数,并计算工资总和以及累计所需不同币值的张数

#include

#include

struct{

char name[10]; /*姓名*/

int total; /*工资数*/

int mnum[7]; /*发放工资时所需不同币值的张数*/

}st[21];

int mvalue[7]={100,50,20,10,5,2,1};

main()

{FILE *fp;

int n=0,i,j,wage;

fp=fopen("wage.dat","r");

if(fp= =NULL)exit(1);

while(!feof(fp))

{fscanf(fp,"%s%d",st[n].name,&st[n].total);

wage=st[n].total;

for(j=0;j<7&&wage;j++)

{st[n].mnum[j]=___(16)_________;

wage= _____(17)______;

_________(18)________;

}

strcpy(st[n].name,"summary");

for(i=0;i

{ st[n].total+=st[i].total;

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

st[n].mnum[j]+=_____(19)_______;

}

for(i=O;i

{printf("\n%s%d=",st[i].name,st[i].total);

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

printf("%d",st[i].mnum[j]);

}

}

12.以下函数的功能是以十进制字符形式打印出任一int函数 #include "stdio.h"

void f(int n)

{int i;

if(n<0)

{putchar('-');____(20)____;}

if((_____(21)______)!=0)f(i);

putchar(____(22)_______+'0');

13.以下程序中函数maxmin的功能是:对于x中存储的一个任意的四位整数,求出:(1)组成以这个整数的四个数字由大到小排列后构成的最大的四位数;(2)组成以这个整数的四个

数字由小到大排列后构成的最小的四位数。

#include

void maxmin(int x,int *pmax,int *pmin)

{int num[4],i,j,k,temp;

*pmax=0;*pmin=0;

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

{num[i]=x%10;x=_____(23)_____;}

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

{k=i;

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

if(num[k]

if(____(24)_____){temp=num[i];num[i]=num[k];num[k]=temp;}

}

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

{*pmax=*pmax*10+____(25)____; /*生成最大的四位数*/

*pmin=*pmin*10+ _____(26)_______; /*生成最小的四位数*/

}

}

main()

{int n=3169,max=0,min=O;

maxmin(n,&max,&min);

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

14.设某链表上结点的数据结构定义如下:

struct node{

int x;

struct node *next;

}

函数create的功能是:创建一个有序的链表(结点中x的值按升序排序),链表中结点的个数为参数n的值,函数返回该有序链表的头指针。算法思想如下:每产生一个新的结点,插入到链表中的恰当位置,使得插入新结点以后的链表仍然保持有序

_______(27)_______create(int n)

{

struct node *p,*p1,*p2,*h=NULL; int i=0;

if(n<1) return NULL;

while(______(28)________)

{

p=(struct node *) malloc(sizeof(struct node));

scanf(“%d”,&p->x);p->next=NULL;

if(h= =NULL)_______(29)____________;

else

{p1=p2=h;

while(p2 &&p->x>=p2->x) {p1=p2;p2=p2->next;}

if(p2==h){_____(30)____________;h=p;}

else{p->next=p2;p1->next=p;}

}

i++;

return h;

}

答案:

1.D

2.B

3.D

4.A

5.C

6.C

7.B

8.D

9.C10.C11.A12.B13.D14.C15.D16.C17.C18.A19.B20.B

21.B 22.D 23.C 24.B 25.C 26.A 27.D 28.C 29.B 30.C

(1)main (2)6 (3)math.h (4)16 (5)8 (6)4 (7)8 (8)abcdef (9)1,3

(10)11,37 (11)1,4,7,10,2 (12)1,3,9,27,40 (13)i++ (14)cs[1][i] (15)s1[n]

(16)wage/mvalue[j] (17)wage%mvalue[j] (18)n++ (19)st[i].mnum[j]

(20)n=-n (21)i=n/10 (22)n%10 (23)x/10 (24)i!=k (25)num[i] (26)num[3-i]

(27)struct node * (28)inext=p2

改错题目:

下列程序中函数divfun的功能是对于s指向的一个含有数字字符和非数字字符的字符串(串长不超过80),将其中连续的数字字符转换为一个整数,如果连续的数字字符个数超过4个,则以4个数字字符为一组进行转换。将转换后生成的整数一次存放到整型数组a中。函数返回a数组中整数的个数。例如:若输入的字符串”c123yz45! 786 *56abc123456789”,则a数组中的数值分别为:{123,45,786,56,1234,5678,9}

#include

#include

void divfun(char *s, int a)

{

char *p=s;

int i=0,k,sum;

while(*p)

if(isdigit(*p))

{

sum=*p-'0';p++;k=1;

while(isdigit(*p))

{

k++;

if(k<=4){sum=sum+*p-'0';p++;}

else{a[i++]=sum;

k=1;sum=*p-'0';p++;

}

}

a[i++]=sum;

}

else p++;

return i-1;

}

main()

{

char *str;int i,n,num[40];

gets(str);n=divfun(str,num);

puts(str);

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

printf("%6d",num[i]);

printf("\n");

}

编程题目:

编写函数int value(int bb[ ]),在三位正整数中寻找所有符合以下条件的正整数:它既是完全平方数并且又有两位数字相同。例如:144是12的平方并且有两位数字相同,因此144是符合条件的数。将找到的数按从小到大的次序依次存入bb数组中,函数返回bb数组中有效数据的个数

编写main函数,调用函数value,将结果数组中全部有效数据按照每行5个数据的格式保存到文件myf2.out 中。

符合上述条件的整数有:100,121,144,225,400,441,484,676,900

1.将源文件取名为myf2.c,输出结果文件取名为myf2.out。‘

2.数据文件的打开、使用和关闭等操作均用C标准库中缓冲文件系统的文件操作函数

实现。

3.源程序文件和运行结果文件均须保存在T:盘的根目录下,供阅卷用。

4.不要将myf2.obj、myf2.exe保存到T:盘中。

改错题目答案:

(1) void divfun(char *s, int a)

修改为:int divfun(char *s, int a)

(2) void divfun(char *s, int a)

修改为:int divfun(char *s, int a[ ])

(3) if(k<=4){sum=sum+*p-'0';p++;}

修改为:if(k<=4){sum=sum*10+*p-'0';p++;}

(4) char *str;

修改为:char str[80];

编程题目答案:

#include

int value(int bb[ ])

{

int i,i2,j=0,a,b,c;

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

{

i2=i*i;

a=i2/100;

b=i2/10%10;

c=i2%10;

if((a==b||b==c||c==a)&&!(a==b&&b==c)) /*两个数相同*/ bb[j++]=i2;

}

return j;

}

main()

{

int i,n,zz[32]={0};

FILE *fp;

if((fp=fopen("myf2.out","w"))==NULL)

{

printf("Can't open file!");exit(0);

}

n=value(zz);

for(i=0;i

{

printf("%7d\n",zz[i]);

fprintf(fp,(i+1)%5?"%7d":"%7d\n",zz[i]);

}

fprintf(fp,"\n");

fclose(fp);

}

C语言模拟试卷2(带答案)

,. 单选题: 1、执行下面的程序段后,变量k中的值为 s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10 答案: A 2、设有以下定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z的值为_______.2*(3+ (4*5+1) A. 出错 B. 42 C. 48 D. 54 答案: C 3、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是____ A. 1 B. 2 C. 2.0 D. 2.5 答案: c 4、请选出以下语句的输出结果____ printf("%d\n",strlen("\t\ 065\xff\n")) A. 5 B. 4 C. 8 D. 输出项不合法,无正常输出 答案: B 5、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C 程序中的 else总是与____组成配对关系。 A. 其上面距它最近的,并且没有其他else与其配对的if相配对 B. 在同一行上的if C. 缩排位置相同的if D. 在其之前未配对的if 答案: A 6、若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段: printf("%d",(X,Y)); 上面程序片段的输出结果是 A. 200 B. 100 C. 100 200 D. 输出格式符不够,输出不确定的值 答案: A 7、请读程序片段(字符串内没有空格字符): printf("%d\n", strlen("ATS\n012\1\\")); 上面程序片段的输出结果是 A. 11 B. 9 C. 10 D. 8 答案: B 8、设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则______ A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 答案: B 9、阅读下列程序: main( ) { int n[3],i,j,k; for(i=0;i〈3;i++) n[i]=0; k=2; for (i=0;i < k;i++) i=0: n[0]=1,n[1]=2 i=1: =3 =3 for (j=0;j〈2;j++) n[j]=n[i]+1; printf("%d\n",n[1]); } 下述程序运行后输出结果是 A. 2 B. 1 C. 0 D. 3 答案: D 10、输入一个华氏温度,要求输出摄氏温度。计算公式为: c=5/9(F-32),以下程序正确的是() A. main() { float c,F; scanf("%f,%f",&c,&F); c=5/9*(F-32); printf("摄氏温度是:%f\n",c); }

C语言模拟试卷A

安徽农业大学经济技术学院 《C 语言程序设计》模拟试卷(A) 所有答案写在答题卡上,否则不得分 一、单项选择题(每题1分,共30分) 1.以下选项中叙述正确的是________。 A )C 语言程序总是从第一个定义的函数开执行 B )在 C 语言程序中,被调用的函数必须在main()函数中声明 C )C 语言程序总是从main()函数开始执行 D )C 语言程序中的main()函数必须放在程序的开始部分 2.C 语言程序的三种基本结构是顺序结构、选择结构和________结构。 A )循环 B )递归 C )转移 D )嵌套 3以下选项中不属于C 语言的基本数据类型的是________。 A )int B )double C )char D )bool 4.以下选项中正确的C 语言标示符是________。 A)2b B )x_1 C )a@b D)3#h 5.设C 语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为________。 A )0~255 B )0~32767 C )0~65535 D )0~2147483647 6.以下选项中,和语句k=n++;等价的是________。 A )k=n,n=n+1; B )n=n+1,k=n; C )k=++n; D )k=n+1; 7.已知:int i=3,j=2;,则执行语句j*=i+2;printf("%d",j);后,输出结果是________。 A )8 B )10 C )12 D )14 8.已知:int a=2,b=3,c;,执行语句c=(a=2,b=2);后,c 的值是________。 A )2 B )3 C )4 D )5 9.已知:int x,y;float z;,若要给变量x,y,z 输入数据,以下正确的输入语句是________。 A )scanf("%d,%d,%d",x,y,z); B )scanf("%d,%d,%f",&x;&y;&z); C )scanf("%d,%d,%f",&x,&y,&z ); D )scanf("%2d,%2d,%3.2d",x;y;z ); 10.华氏温度f 和摄氏温度c 的关系是)32(9 5-= f c 。已知:float c,f;,由华氏温度f 求摄氏温度c 的不正确的赋值表达式是________。 A )c=5/9(f-32) B )c=5.0/9*(f-32) C )c=5*(f-32)/9 D )c=(float)5/9*(f-32) 11.一个C 程序中要调用sqrt()函数时,应在程序中包含的头文件是________。 A )stdio.h B )math.h C )string.h D )stdlib.h 12.已知:char c='a';,则执行语句printf("%c",c-32);后输出结果是________。 A )A B )65 C )97 D )出错 13.能正确表示逻辑关系“a ≥5或a ≤-1”的C 语言表达式是________。 A )a>=5.or.a<=-1 B) a>=5.and.a<=-1 C) a>=5&&a<=-1 D )a>=5‖a<=-1

最新C语言程序设计模拟试题5(附答案)

《C语言程序设计》模拟试题五 一、填空题(40分) 1.计算机软件分为和;C语言适合编 写 . 2.十进制数35=( ) 2 =( ) 8 =( ) 16 3.已知一个数[X]补=11111001,求[X] 原 = 及 X= . 4.设x=2.5,a=7,y=4.7.求下列算术表达式的值. x+a%3*(int)(x+y)%2/3= . 5.将算式|3-e x ln(1+Y)|写成C语言表达 式. 6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为: . 7.用C语句写出累加器、累乘 器、计数器. 8.上机操作时,CTRL+F9键的功能是 ,F2键的功能 是ALT+F5键的功能是 . 9.下列程序段对应的数学表达式 是 int t,n,s=0; scanf(“%d”,&n); for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} 10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空. main() {int a[10]={25,57,48,38,12,92,88,48,16,25}; int i,x; scanf(“%d”,&X); for(i=0;i<10;i++) if (x==a[i]) {printf(“Found!The index:%d\n”a[i]);(1) ;} if (2) printf(“Can not found!”); }

二、单选题(15分) 1.一个C程序的执行是从 . A.本程序的main()函数开始,到main函数结束. B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. C.本程序的main()函数开始,到本程序文件的最后一个函数结束. D.本程序文件的第一个函数开始,到本程序main函数结束. 2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式 为 . main() { int a,b,c; 输入语句; printf(“%c%c%c”,a,b,c); } 输入形式:A B C 输出形式:ABC A.scanf(“%c%c%c”,&a,&b,&c); B.scanf(“%c,%c,%c”,&a,&b,&c); C.scanf(“%c %c %c”,&a,&b,&c); D.scanf(“%c%c”,&a,&b); 3.给出下列程序的运行结果 . main() {int i,j,k,x=0; for(i=2;i<=5;i++) for(j=7;j>=3;j-=2) for(k=4;k<=11;k+=4) x++; printf(“x=%d”,x);} A.x=64 B. x=36 C.x=60 D. x=24 4.若x,i,j和k都是int型变量,则表达式计算下面表达式后,x的值 为 . x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 5.以下不正确if语句形式是 . A.if ( x>y && x!=y ); B.if ( x = = y ) x + = y; C. if ( x != y ) scanf(“%d”,&x) else scanf(“%d”,&y);

C语言程序设计模拟试题1(附答案)

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 x = 9; while (x > 7)

c语言模拟试卷A

《C语言程序设计》模拟试卷A (闭卷考试) 一、选择题(每题 分,共 分) 、以下不正确的 语言标识符是 。 、设有说明: 则表达式 值的数据类型为: 。 、根据下述定义,可以输出字符 的语句是 。

、以下说法中正确的是: 。 语言程序总是从第一个定义的函数开始执行 在 语言程序中,要调用的函数必须放在 函数中定义 语言程序总是从 函数开始执行 语言程序中的 函数必须放在程序的开始部分 、在定义 之后,对 的引用正确的是 。 、以下不能正确赋值的是 。 、设 和 都是 类型,则 循环语句 。 最多执行 次 最多执行 次 是无限循环 循环体一次也不执行 、 语言中表示“在使用 之前,先使 的值加 ”的正确方式是 。 、设有说明 其中 是 。

个指向整型变量的指针 指向 个整型变量的函数指针 一个指向具有 个整型元素的一维数组的指针 具有 个指针元素的一维指针数组,每个元素都只能指向整型量 、在下面关于指针的说法中,错误的一条是 。 变量的指针就是变量的地址 可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量 一个指针变量只能指向同一类型的变量 指针变量中只能存放地址(指针) 二、读程序写结果(每题 分,共 分) 、以下程序运行后输出的结果是: 、若输入 ,以下程序的输出结果是:

、以下程序的输出结果是 、以下程序的输出结果是

、以下程序的输出结果是 、以下程序的输出结果是

; 、以下程序的输出结果是 三、程序填空(每空 分,共 分) 、将一个数组中的元素按逆序重新存放。例如原来的顺序为: 要求改为: 。 初始数组

C语言模拟试卷A

安徽农业大学经济技术学院 《C语言程序设计》模拟试卷(A) 所有答案写在答题卡上,否则不得分 一、单项选择题(每题1分,共30分) 1.以下选项中叙述正确的是___C_____。 A)C语言程序总是从第一个定义的函数开执行 B)在C语言程序中,被调用的函数必须在main( )函数中声明 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分 2.C语言程序的三种基本结构是 A 结构。 A)循环、选择、顺序 B)递归、转移、嵌套 C)for while do-while D)if break continue 3以下选项中不属于C语言的基本数据类型的是__D______。 A)int B)double C)char D)bool 4.以下选项中正确的C语言标识符是_B_______。 A)2b B)x_1 C)a@b D) h#3 5.有以下程序段:int m=0,n=0;char c=’a’; scanf(“%d%c%d”,&m,&c,&n); printf(“%d,%c,%d\n”,m,c,n); 若从键盘上输入98A56(回车)输出结果是____B____。 A)98,A,56 B)98,a,56 C)98,a,0 D)98,A,6 6.以下选项中,和语句k=n++;等价的是__A______。 A)k=n,n=n+1; B)n=n+1,k=n; C)k=++n; D)k=n+1; 7.已知:int i=3,j=2;,则执行语句j*=i+2;printf("%d",j);后,输出结果是____B____。 A)8 B)10 C)12 D)14 8.已知:int a=2,b=3,c;,执行语句c=(a=2,b=2),a+b;后,c的值是____A____。 A)2 B)3 C)4 D)5 9.已知:int x,y;float z;,若要给变量x,y,z输入数据,以下正确的输入语句是__C______。 A)scanf("%d,%d,%f",x,y,z); B)scanf("%d,%d,%f\n",&x,&y,&z); C)scanf("%d,%d,%f",&x,&y,&z); D)scanf("%2d,%2d,%3.2f",&x,&y,&z); 10.设有int m=9,n; 则表达式( B )不能使n的值为1。 A.n=m%2 B.n=m/10 C.n=m-1<10?1:2 D.n= m %8 11.一个C程序中要调用sqrt()函数时,应在程序中包含的头文件是_B_______。 A)stdio.h B)math.h C)string.h D)stdlib.h 12.已知:char c='a';,则执行语句printf("%c",c-32);后输出结果是____A____。 A)A B)65 C)97 D)出错 13.能正确表示逻辑关系“a≥5或a≤-1”的C语言表达式是__D______。 A)a>=5|a<=-1 B) a≥5||a≤1

C语言模拟试题二

模拟试题二 一、选择题(本大题30分,每小题2分) 1.C语言中不能用来表示整常数的进制是。 A)十进制B)十六进制C)八进制D)二进制 2.C语言规定标识符由等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 4.以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。 A)int B)float C)char D)double 5.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 6.以下if语句中语法错误的是。 A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a); else printf(“%f”,b); C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b); else printf(“%f”,b); else printf(“%f”,a); 7.能表示整数x符合下面两个条件的语句是。 (1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x%100!=0)||x%400==0 B)(x%4==0||x%100!=0)&&x%400==0 C)(x%4==0&&x%400!=0)||x%100==0 D)(x%100==0||x%4!=0)&&x%400==0 8.循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句 其中表示循环条件的是。 A)表达式1 B)表达式2 C)表达式3 D)语句 9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。 A)地址传递B)单向值传递 C)双向值传递D)随机传递 10.将字符串str2连接到字符串str1中应使用。 A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strcat(str2,str1) 11.若有以下定义: int a[10],*p=a; 则*(p+3)表示的是。 A)元素a[3]的地址B)元素a[3]的值 C)元素a[4]的地址D)元素a[4]的值 12.若有如下语句: int *p1,*p2; 则其中int所指的是。 A)p1的类型B)*p1和*p2的类型 C)p2的类型D)p1和p2所能指向变量的类型

C语言程序设计模拟试题A(附答案)

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的是(C)。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果是(C)。 x = 9; while (x > 7) { printf(“*”); x- -; } A) **** B) *** C) ** D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)。解析: strcpy(str1,str2); 后,str1[] 里是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的是str1, 因为str1[] 里是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。

C语言模拟试题(答案)

一、选择题 1.有如下程序: main() { int a=1,b=2; a+=b;b=a-b;a-=b; printf("%d,%d\n",a,b); } 该程序的输出结果是【】。 A.1,2 B.2,1 C.2,2 D.3,2 2.有以下程序: main() { int i; for(i=0;i<3;i++) switch(i) { case 1:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); } } 执行后输出的结果是【】。 A.011122 B.012 C.012020 D.120。3.有以下程序: main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); } 执行后输出结果是【】。 A.5 B.4 C.6 D.不确定 4.有如下程序: f(int a) { int b=0; static int c=3; b++;c++; return(a+b+c) ;

} main() { int a=2,i; for(i=0;i<3;i++) printf("%2d",f(a)); } 该程序的输出结果是【】。 A.7 7 7 B.7 7 8 C. 7 8 9 D.7 8 8 5.有如下程序段: main() { int a,b,c=246; a=c/100%9; b=(-1) && (-1); printf("%d,%d\n",a,b); } 输出结果是【】。 A.2,1 B. 3,2 C. 4,3 D. 2,-1 6.有如下程序: main() { char str[ ][20]={"Hello","Beijing"}, *p=str; printf("%d\n",strlen(p+22)); } 该程序的输出结果是【】。 A.0 B.5 C.7 D.20 7.有如下程序: #define U 2 #define V U+2 #define X V*V/2 main() { printf("%d\n",5*X); } 该程序的输出结果是【】。 A.10 B.20 C.15 D.40 8.有以下程序: main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=a[i][1];

C语言基础知识复习题模拟试题一

模拟试题一 一、选择题(本大题30分,每小题2分) 1.下列说法正确的是 H 。 A)main函数必须放在C程序的开头 B)main函数必须放在C程序的最后 C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的 D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的 2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组: A 。 A)整型实型字符型 B)整型数组指针 C)数组结构体共用体 D)指针逻辑型空类型 3.若有说明语句:char c= ‘\64’ ; 则变量C包含: A 。 A)1个字符 B)2个字符 C)3个字符 D)说明不合法,C值不确定 4.设有如下定义和执行语句,其输出结果为:。 int a=3,b=3; a = -- b + 1; printf(“%d %d”,a,b); A)3 2 B)4 2 C)2 2 D)2 3 语言中,运算对象必须是整型数的运算符是 A 。 A)% B)\ C)% 和 \ D)** 6.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是 C 。 A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100) C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100) D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) 7.程序段如下 int k=0; while(k++<=2); printf("last=%d\n",k); 则执行结果是last= B 。 A)2 B)3 C)4 D)无结果 8.下面有关for循环的正确描述是 A 。 A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判断表达式 C)在for循环中,不能用break语句跳出循环体 D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 9.若二维数组a有m列,则a[I][j]元素前的数组元素个数为:。 A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1

C语言模拟试题四

模拟试题四 一、选择题(本大题30分,每小题2分) 1.在C语言中,反斜杠符是。 A)\n B)\t C)\v D)\ \ 2.表达式18/4*sqrt(4.0)/8值的数据类型为。 A)int B)float C)double D)不确定 3.设整型变量a值为9,则下列表达式中使b的值不为4的表达式。 A)b=a/2 B)b=a%2 C)b=8-(3,a-5) D)b=a>5?4:2 4.已知变量C1为字符型变量,下面不正确的赋值语句是:。 A)C1 = ...abc?B)C1= 0 C)C1 = …7?+ …9?D)C1= 7 + 9 5.以下程序的输出结果是:。(注:▂表示空格) main( ) { printf(“\n*s1=%8s*”, “china”); printf(“\n*s2=%-5s*”, “chi”) ; } A)*s1=china▂▂▂* B)*s1=china▂▂▂* *s2=chi* *s2=chi▂▂* C)*s1=▂▂▂china* D)*s1=▂▂▂china* *s2=▂▂chi * *s2=chi▂▂* 6.设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是:。A)‘a’+ …b?B)a<=b C)a||b+c&&b-c D)!( (ay||xz) { z=x; x=y; y=z;} A)x=10, y=20, z=30 B)x=20, y=30, z=30 C)x=20, y=30, z=10 D)x=20, y=30, z=20 8.下列字符串赋值语句中,不能正确把字符串C program赋给数组的语句是:。A)char a1[]={…C?, …?, …p?, …r?, …o?, …g?, …r?, …a?, …m?} B)char a2[10]; strcpy(a2, “C program”); C)char a3[10]; a3= “C program”; D)char a4[10]={ “C program”} 9.用scanf函数输入一个字符串到数组str中,下面正确的语句是:。 A)scanf(“%s”,&str); B)scanf(“%c”,&str[10]); C)scanf(“%s”, str) ; D)scanf(“%s”,str[10]); 10.C语言规定,C程序的各函数之间。 A)允许嵌套调用,但不允许嵌套定义; B)不允许嵌套调用,但允许嵌套定义; C)不允许嵌套调用,也不允许嵌套定义; D)允许嵌套调用,也允许嵌套定义;。

C语言模拟试卷2(带答案)

单选题: 1、执行下面的程序段后,变量k中的值为 s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10 答案: A 2、设有以下定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z的值为_______.2*(3+ (4*5+1) A. 出错 B. 42 C. 48 D. 54 答案: C 3、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是____ A. 1 B. 2 C. 2.0 D. 2.5 答案: c 4、请选出以下语句的输出结果____ printf("%d\n",strlen("\t\ 065\xff\n")) A. 5 B. 4 C. 8 D. 输出项不合法,无正常输出 答案: B 5、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C 程序中的 else总是与____组成配对关系。 A. 其上面距它最近的,并且没有其他else与其配对的if相配对 B. 在同一行上的if C. 缩排位置相同的if D. 在其之前未配对的if 答案: A 6、若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段: printf("%d",(X,Y)); 上面程序片段的输出结果是 A. 200 B. 100 C. 100 200 D. 输出格式符不够,输出不确定的值 答案: A 7、请读程序片段(字符串内没有空格字符): printf("%d\n", strlen("ATS\n012\1\\")); 上面程序片段的输出结果是 A. 11 B. 9 C. 10 D. 8 答案: B 8、设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则______ A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 答案: B 9、阅读下列程序: main( ) { int n[3],i,j,k; for(i=0;i〈3;i++) n[i]=0; k=2; for (i=0;i < k;i++) i=0: n[0]=1,n[1]=2 i=1: =3 =3 for (j=0;j〈2;j++) n[j]=n[i]+1; printf("%d\n",n[1]); } 下述程序运行后输出结果是 A. 2 B. 1 C. 0 D. 3 答案: D 10、输入一个华氏温度,要求输出摄氏温度。计算公式为: c=5/9(F-32),以下程序正确的是() A. main() { float c,F; scanf("%f,%f",&c,&F); c=5/9*(F-32); printf("摄氏温度是:%f\n",c); }

C语言模拟试题

(1)一:选择题(本题共15 小题,满分30 分) (1).以下叙述正确的是B A)C语言程序是由过程和函数组成的 B)C语言函数可以嵌套调用,例如:fun(fun(x)) C)C语言函数不可以单独编译 D)C语言中除了main函数,其他函数不可作为单独文件形式存在 (2)以下C语言用户标识符中,不合法的是D A)_1 B)AaBc C)a_b D)a—b (3)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是C A)a=a++,i++; B)i=(a+k)<=(i+k); C)i=a%11; D)i=!a; (4)以下程序的输出结果是(B)。 main() { int x=2, y=-1, z=2; if (x0;j--) {if((i*j)>3)break; m*=i*j; } } printf("m=%d\n",m); } 程序运行后的输出结果是A A)m=6 B)m=2 C)m=4

(7)有以下程序D #include "stdio.h" main() {int a=1;int b=2; for(;a<8;a++) {b+=a;a+=2;} printf("%d,%d\n",a,b); } 程序运行后的输出结果是 A)9,18 B)8,11 C)7,11 D)10,14 (8)以下关于return语句的叙述中正确的是b A)一个自定义函数中必须有一条return语句 B)一个自定义函数中可以根据不同情况设置多条return语句 C)定义成void类型的函数中可以有带返回值的return语句 D)没有return语句的自定义函数在执行结束时不能返回到调用处 (9)下列选项中,能正确定义数组的语句是D A)int num[0..2008]; B)int num[]; C)int N=2008; int num[N]; D)#define N 2008 int num[N]; (10).有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p,b; p=&a[3]; b=p[5]; b中的值是(D) A. 5 B. 6 C. 8 D. 9 (11)有以下程序 #include"stdio.h" main() {int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0; for(i=0;i<5;i++) s=s+a[b[i]]; printf("%d\n", s); } 程序运行后的输出结果是c A)6 B)10 C)11 D)15 (12)有以下程序 #include "stdio.h" #define SUB(a) (a)-(a)

C语言程序设计模拟试题

C语言程序设计模拟试题2 一、单选题(每题3分,共计30分) 1、C语言中基本数据类型包括(B)。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、实型 2、下列选项中不属于C语言的优点的选项是()。 A、C语言语句简洁、紧凑,使用方便灵活 B、C语言程序易于移植 C、生成的目标代码质量高,运行效率高 D、数据类型检查严格 3、若a、b均为int型变量,且a=100,则关于循环语句for(b=100; a!=b; ++a,++b) printf ( “ ------------”) ;的正确说法是()。 A、循环体只执行一次 B、死循环 C、循环体一次也不执行 D、输出----------- 4、对C语言来说,下列标识符中不合法的选项是()。 A、AB2C B、ab2c C、ab.2c D、a_b2c 5、执行下列程序段后,i的值是()。 s = 0; for( i = 1; i <= 4; i=i+3 ){ s += i; } A、1 B、4 C、5 D、7 6、下列各语句中,能够输出整型变量a、b中最大值的是( )。 A、printf("%d\n",(a>b)?a,b); B、(a>b)? printf("%d",b): printf("%d",a); C、printf("%d",if(a>b)a else b); D、printf("%d\n",(a>b)?a:b); 7、设int a = 9,b = 8,c = 7, x = 1; 则执行语句if (a>7) if (b>8) if (c>9) x=2 ;else x = 3; 后,x 的值是( )。 A、0 B、2 C、1 D、3 8、下列语句中定义x为指向int类型变量a的指针,正确的是()。 A、int a, *x=a; B、int a, *x=&a; C、int *x=&a, a; D、int a, x=a; 9、以下正确的函数定义形式是()。 A、double fun(int x, int y) B、double fun(int x; int y) C、double fun(int x, int y); D、double fun(int x y) 10、假定int类型变量占用两个字节,有定义:int x[10]={0,2,4};,则数组x 在内存中所占字节数是( ) 编辑版word

C语言模拟试题

《C语言程序设计教程实验与练习》(第二版)模拟试题II及答案 一、单项选择题(每题2分,30道题,共60分) 1.下面的程序将输出: main() { float f; int x=1,y=; f=x/y; printf("f=%,y=%#X", f, y ); } = , y=2 = , y=0X2 = , y=0X2 = , y=2 2.下面的程序将输出: #include "" main() { int len; char str[]="a\b\04235\0"; len=strlen(str); printf("%d",len); } A. 10 B. 5 C. 6 D. 7 3.下面的程序将输出: main() { int a=0x31; char *str[]={"this is one. ","this is two. "}; char ch; ch=++a-’0’; switch(ch) { case 1: printf ("%s", str[0]); case 2: printf ("%s", str[1]); default: printf ("no way! "); } } is one. is two. way! is way! 4.下面的程序将输出: main() { int a[5]={1,2,3};

int k,j; for(k=1;k<4;k++) a[k]++; for(j=0;j<5;j++) printf("%d ",a[j]); } 3 4 1 0 3 4 1 0 3 4 0 0 3 4 0 0 5.已知有下面两个变量,将数组a的第2个单元赋值为1的C语句是: int a[10]; int *p; p=a; [2]=1; [1]=1; C.*(p++)=1; D.*(++a)=1; 6.下面程序将输出: void add(int a) { a++; return; } main() { int k; k=; add(k); printf("%d",k); } A. B. C. 3 D. 4 7.下列循环结构中,不是 ..无限循环的是: A. for(i=1, s=0; ; i++) B. i=10; s=s+i ; while(1) {i=i%10+1; if(i>10) break; } C. int i=0; D. i =100; do{ ++i ; }while(i>=0); while(++i%2) i++; 8.若已知int a[3][4],*p;p=(int *)a;那么对数组a的第2行第2列的正确引用是: [2][2] [5] [5] [1][1] 9.已知:int (*p)[20]; 且p的值是0X5000,请问表达式p+2的值是多少? A. 0X5050 B. 0X5002 C. 0X5004 D. 0X5040

C语言模拟试题

二级C 语言笔试试卷(A) 注意事项:1.一题答案填涂在答题卡上 2.二、三、四、五题答案做在答题纸上 一.单项选择题。(每小题1分,共20分) 1. C 程序的源程序由预处理命令和( )组成。 (A)函数 (B )语句 (C )保留字 (D )标始符 2. 下面程序段中,与if (x%2)中的x%2所表示条件等价的是( )。 scanf(〞%d 〞,&x); (A )x%2==0 (B )x%2!=1 (C) x%2!=0 (D) x%2==1 3. 执行下面C 语言序列后,变量b 的值是( )。 Int a,b,c ; a=b=c=1; ++a||++b&&++c ; (A )错误 (B )0 (C) 2 (D) 1 4. 设有C 语句int a[3][4];, 则每次移动过a 数组一行元素的指针变量定义形式是( )。 (A )int *p ; (B )int **p ; (C) int(*p)[4]; (D) int *p[4]; 5. 设有整型变量a, 实型变量f,双精度型变量x ,则表达式10+′b ′+x*f 值的类型为( )。 (A )int (B )float (C)double (D)不能确定 6. C 语言中规定,函数调用中用简单变量做实参时,它和对应形参之间的数据传递方式是( )。 (A )地址传递 (B )单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式 7. 下面程序的输出是( )。 #include void main() { int x=10,y=3; printf(〞%d\n 〞,y=x/y); } (A )0 (B )1 (C) 3 (D) 不确定的值 8. 执行下面的程序段后,B 的值为( )。 int x=35; char z=′A ′; int B; B=((X&5)&&(z<′a ′)); (A )0 (B )1 (C)2 (D) 3 9. 以下程序的输出结果为( )。 #include void main() { int i=0; for(;;) if(i++==5) break; printf(〞%d\n 〞,i); } (A )0 (B )5 (C) 6 (D) 前3个选项都错 10. 已知:char s[4]=〞cba 〞;char *p; 执行语句列p=s;printf(〞%c\n 〞,*p+1);后,其输出为( )。 (A )c (B )b (C) a (D) d 11. 运行完下列程序后,在屏幕上的内容是( )。 #include void main() { int a=0; a+=a=12; printf(〞%d\n 〞,a); } (A )0 (B )6 (C) 12 (D) 24 12. 已知:int x= 1 , y = 2, z =0, 则执行z=x>y?(10+x,10-x):(20+y,20-y)后,z 的值为( )。 (A )11 (B )9 (C) 18 (D) 22 13. 若已定义x 和y 为double 类型,则表达式x=2,y=x+10/4的值是( ) (A )2 (B )4 (C)4.0 (D) 4.5 14. 以下程序的输出结果是( )。 #include int x=3,y=4; void main() { int x=0; x+=y++; printf(〞%d 〞,x);

相关文档