当前位置:文档之家› 07-09计算机二级考试C语言试题及答案

07-09计算机二级考试C语言试题及答案

07-09计算机二级考试C语言试题及答案
07-09计算机二级考试C语言试题及答案

2007年四月计算机二级试题

一选择题

(1)下列叙述中正确的是

A)算法的效率只与问题的规模有关,而与数据的存储结构无关

B)算法的时间复杂度是指执行算法所需要的计算工作量

C)数据的逻辑结构与存储结构是一一对应的

D)算法的时间复杂度与空间复杂度一定相关

(2)在结构化程序设计中,模块划分的原则是

A)各模块应包括尽量多的功能

B)各模块的规模应尽量大

C)各模块之间的联系应尽量紧密

D)模块内具有高内聚度、模块间具有低耦合度

(3)下列叙述中正确的是

A)软件测试的主要目的是发现程序中的错误

B)软件测试的主要目的是确定程序中错误的位置

C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作

D)软件测试是证明软件没有错误

(4)下面选项中不属于面向对象程序设计特征的是

A)继承性 B)多态性 C)类比性 D)封闭性

(5)下列对列的叙述正确的是

A)队列属于非线性表

B)队列按“先进后出”原则组织数据

C)队列在队尾删除数据

D)队列按“先进先出”原则组织数据

(6)对下列二叉树

进行前序遍历的结果为

A) DYBEAFCZX B) YDEBFZXCA

C) ABDYECFXZ D) ABCDEFXYZ

(7) 某二叉树中有n个度为2的结点,则该二叉树中的叶子结点为

A) n+1 B) n-1 C) 2n D) n/2

(8) 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是

A) 并 B)交 C)投影 D)笛卡儿乘积

(9) 在E-R图中,用来表示实体之间联系的图形是

A) 矩形 B)椭圆形 C)菱形 D)平行四边形

(10)下列叙述中错误的是

A) 在数据库系统中,数据的物理结构必须与逻辑结构一致

B)数据库技术的根本目标是要解决数据的共享问题

C)数据库设计是指在已有数据库管理系统的基础上建立数据库

D)数据库系统需要操作系统的支持

(11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的

A)正当性 B)可行性 C)确定性 D)有穷性

(12)下列叙述中错误的是

A)计算机不能直接执行用C语言编写的源程序

B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件

C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行

(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是

A)大写字母 B)连接符 C)数字字符 D)下划线

(14)以下叙述中错误的是

A)C语言是一种结构化程序设计语言

B)结构化程序有顺序、分支、循环三种基本结构组成

C)使用三种基本结构构成的程序只能解决简单问题

D)结构化程序设计提倡模块化的设计方法

(15)对于一个正常运行的C程序,以下叙述中正确的是

A)程序的执行总是从main函数开始,在main函数结束

B)程序的执行总是从程序的第一个函数开始,在main函数结束

C)程序的执行总是从main函数开始,在程序的最后一个函数中结束

D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

(16)设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式正确的是(注:□代表空格字符)

A)10□X□20□Y〈回车〉

B)10□X20□Y〈回车〉

C)10□X〈回车〉20□Y〈回车〉

D)10X20Y

(18)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是

A)k++ B)k+=1 C)++k DD)k+1

(19)有以下程序,其中%u表示按无符号整数输出

Main()

{unsigned int x=0xFFFF;/* x的初值为十六进制数 */

Printf(“%d\n”,x);

}

程序运行后的输出结果是

A)-1 B)65535 C)32767 D)0XFFFF

1 111 1111 1111 1111

1 111 1111 1111 1110

1 000 0000 0000 0001

(20)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是

A)if(x++)

B)if(x>y&y!=0);

C)if(x>y) x- -

D)if(y<0) {;}

else y++: else x++;

(21)以下选项中,当x为大于1的奇数时,值为0的表达式

A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0

(22)以下叙述中正确的是

A)break语句只能用于switch语句中

B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环

C)break 语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句的作用相同

(23)有以下程序

Main()

{int k=5,n=0;

do

{switch(k)

{case 1:

case 3:n+=1; break;

Case 2:

case 4:n+=2;k--;break;

Default;n=0;k--;

}

Printf(“%d”,n);

}while(k>0&&n<5);

}

程序运行后的输出结果是

A)235 B)02345 C)02356 D)2356

n=0 k=4

n=2 k=3

n=3 k=3

n=4 k=3

n=5 k=3

(24)有以下程序

{int i,j;

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

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

printf(“%d*%d=%d “,i,j,i*j);

Printf(“\n”);

}

}

程序运行后的输出结果是

i=1 1*1=1 1*2=2 1*3=3

i=2 2*2=4 2*3=6

i=3 3*3=9

(31)以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag 为0时,进行由大到小排序。

void f(int b[],int n,int flag)

{int i,j,t;

for(i=0;i for (j=i+1;j if(flag?b[ i ]>b[j]:b[ i ]}

main()

{int a[10]={5,4,3,2,1,6,7,8,9,10},i;

f(&a[2],5,0); f(a,5,1);

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

}

7 6 3 2 1 1 2 3 4 5

程序运行后的输出结果是

A)1,2,3,4,5,6,7,8,9,10, B)3,4,5,6,7,2,1,8,9,10,C)5,4,3,2,1,6,7,8,9,10, D)10,9,8,7,6,5,4,3,2,1,

32)有以下程序

void f(int b[])

{int i;

for(i=2;i<6;i++) b[i]*=2;

}

main()

{int a[10]={1,2,3,4,5,6,7,8,9,10},i;

f(a);

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

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

}

程序运行后的输出结果是

A)1,2,3,4,5,6,7,8,9,10, B)1,2,6,8,10,12,7,8,9,10 C)1,2,3,4,10,12,14,16,9,10, D)1,2,6,8,10,12,14,16,

(33)有以下程序

typedef struct{int b,p;}A;

void f(A c) /*注意:c是结构变量名 */

{int j;

c.b+=1; c.p+=2;

}

main()

{int i;

A a={1,2};

f(a) ;

printf(“%d,%d\n”,a.b,a.p);

}

程序运行后的输出结果是

A)2,3 B)2,4 C)1,4 D)1,2

(34)有以下程序

main()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t; for(i=0;i<4;i++)

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

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

if(a[j][ i]>a[k][ i])

{t=a[j][ i];

a[j][ i ]=a[k][ i ];

a[k][ i]=t;}/*按列排序*/

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

}

程序运行后的输出结果是

A)1,2,5,7, B)8,7,3,1, C)4,7,5,2, D)1,6,2,1,

1,4,3,2

8,6,5,7

3,7,2,5,

4,8,6,1,

(35) 有以下程序

main()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t; for(i=0;i<3;i++)

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

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

}

程序运行后的输出结果是

A)6,2,1,1, B)6,4,3,2, C)1,1,2,6, D)2,3,4,6,

(36) 有以下程序

void f(int *q)

{int i=0;

for( i<5;i++)(*q)++;

}

main()

{int a[5]={1,2,3,4,5},i;

f

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

}

程序运行后的输出结果是

A)2,2,3,4,5, B)6,2,3,4,5, C)2,3,4,5,6,

(37) 有以下程序

#include

main()

{char p[20]={‘a’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”; Strcpy(p+strlen(q),r); strcat(p,q);

Printf(“%d%d\n”,sizeof(p),strlen(p));

}

程序运行后的输出结果是

A)20 9 B)9 9 C)20 11 D)11 11

(38) 有以下程序

#include

main()

{char p[20]={‘a’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”strcat(p,r); Strcpy(p+strlen(q),q);

Printf(“%d \n”,sizeof(p));

}

程序运行后的输出结果是

A)9 B)6 C)11 D)7

(43) 有一个名为init.txt的文件,内容如下:

#define HDY(A,B) A/B

# define PRINT(Y) Printf(“y=%d\n.,Y)

有以下程序

#include “init.txt”

main()

{int a=1,b=2,c=3,d=4,k;

K=HDY(a+c,b+d);

PRINT(K);

}

下面针对该程序的叙述正确的是

A)编译有错 B)运行出错

C)运行结果为 y=0 D) 运行结果为 y=6

(44) 有以下程序

Main()

{char ch[]=“uvwxyz”,*pc;

Pc=ch; printf(“%c\n”,*(pc+5));

}

程序运行后的输出结果是

A)z B)0 C)元素ch[5]地址 D)字符y的地址

(45) 有以下程序

struct S {int n; int a[20];};

void f(struct S *P)

{int i,j,t;

for(i=0;in-1;i++)

for(j=j+1;jn-1;j++)

程序运行后的输出结果是

A)3 B)4 C)5 D)6

(49)有以下程序

#include

Main()

{FILE *fp; int I,a[6]={1,2,3,4,5,6};

fp=fopen(“d2.dat”,”w”);

fprintf(fp,”%d%d\n”,a[0],a[1],a[2]); fprintf(fp, “%d%d\n”,a[3],a[4],a[5]);

fclose(fp);

fp=fopen(“d2.dat”,”r”);

fscanf(fp,” “%d%d\n”,&k,&n); printf(“%d%d\n”,k,n);

fclose(fp);

}

程序运行后的输出结果是

A)1 2 B)1 4 C)123 4 D) 123 456

(50)有以下程序

#include

main ()

{fILE *fp; int I,a[6]={1,2,3,4,5,6k};

fp=fopen(“d3.dat”,”w+b”);

fwrite(a,size(int),6,fp);

fseek(fp,sizeof(int)*3,SEEK SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/

fread(a,sizeof(int),3,fp); fclose(fp);

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

}

程序运行后的输出结果是

A)4,5,6,4,5,6, B)1,2,3,4,5,6, C)4,5,6,1,2,3, D)6,5,4,3,2,1,

二.填空题(每空2分,共40分)

请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分。

注意:以命令关键字填空的必须写完整

(1)在深度为7的满二叉树中,度为2的结点个数为_________。

(2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于__________ 测试。

(3)在数据库系统中,实现各种数据管理功能的核心软件称为数据库管理系统______。

(4)软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 _______阶段。

(5)在结构化分析使用的数据流图(DFD)中,利用 _________ 对其中的图形元素进行确切解释。

(6)执行以下程序后的输出结果是 __________ 。

main()

{int a=10;

a=(3*5,a+4); printf(“a=%d\n”,a);

}

(7) 当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行___________次。

#include

main()

{char ch;

While((ch=getchar())==’0’) printf(“#”);

}

(8) 以下程序的运行结果是 _________ 。

int k=0;

void fun(int m)

{ m+=k; k+=m; printf(“m=%d\n k=%d ”,m,k++);}

main()

{ int i=4;

fun(i++); printf(“i=%d k=%d\n”,i,k);

}

(9) 以下程序的运行结果是__________ 。

main()

{int a=2,b=7,c=5;

Switch(a>0)

{case 1:switch(b<0)

{case 1:switch(“@”); break;

Case 2: printf(“!”); break;

}

Case 0: switch(c==5)

{ case 0: printf(“*”); break;

Case 1: printf(“#”); break;

Case 2: printf(“$”); break;

}

default : printf(“&”);

}

Printf(“\n”);

}

(10)以下程序的输出结果是 ____________

# include

main()

{ printf(“%d\n”,strlen(“IBM\n012\1\\”));

}

(11)已定义char ch=”$”;int i=1,j;执行j=!ch&&i++以后,i的值为___________

(12)以下程序的输出结果是 ________

# include

main()

{ char a[]={‘\1’,’\2’,’\3’,’\4’,’\0’};

Printf(“%d %d\n”,sizeof ,srelen );

}

(13)设有定义语句:int a[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为________

(14)以下程序的功能是:求出数组x中各相邻两个元素的和,依次存放到a 数组中,然后输出,请填空。

Main()

{int x[10],a[9],I;

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

Scanf(“%d”,&x[ i]);

For( _________ i<10;i++)

A[i-1]=x[ i]+ _____________

For(i=0;i<9;i++)

Printf(“%d”,a[ i]);

Printf(“\n”);

(15) 以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上,请填空:

Main()

{int x,y,z,max,*px,*py,*pz,*pmax;

Scanf(“%d%d%d”,&x,&y,&z);

Px=&x;

Py=&y;

Pz=&z;

Pmax=&max;

__________________

If(*pmax<*py)*pmax=*py;

If(*pmax<*pz)*pmax=*pz;

Printf(“max=%d\n”,max);

}

(16)以下程序的输出结果是 ____________

Int fun(int*x,int n)

{if(n==0)

Return x[0];

Else

return x[0]+fun(x+1,n-1);

}

Main()

{int a[]={1,2,3,4,5,6,7};

Printf(“%d\n”,fun(a,3));

}

(17)以下程序的输出结果是 ______________

# include

Main()

{char *s1,*s2,m;

S1=s2=(char*)malloc(sizeof(char));

*s1=15;

*s2=20;

M=*s1+*s2;

Printf(“%d\n”,m);

}

(18)设有说明

Struct DATE{int year;int month; int day;};

请写出一条定义语句,该语句定义d为上述结构体变量,并同时为其成员year、month、day 依次赋初值2006、10、1: ____________;

(19)设有定义:FILE*fw;,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。

fw=fopen(“readme.txt”, “________” )

2007年4月二级C语言笔试答案

选择题

1-5: BDACD6-10: CABCA11-15: CDBCA16-20: DCABC21-25: DCABA

26-30: ADCDA31-35: BBDDB36-40: DCACA41-45: DADAA46-50: ACBDA

填空题

1、63

2、黑盒

3、数据库管理系统

4、开发

5、数据字典

6、a=14

7、0,8、m=4 k=4 i=5 k=5 9、#& 10、9 11、1 12、5 4;13、0;

14、i=1;15、x[i-1]; 16、*pmax=*px 17、10 18、40 19、struct DATE d={2006,10,1} 20、a

2007年9月全国计算机等级考试二级C语言笔试试题及答案

一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分))

下列各题A)、B)、C)、D)四个选项中,只有一个是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。

(1)软件是指

A)程序 B)程序和文档

C)算法加数据结构 D)程序、数据和相关文档的集合

(2)软件调试的目的是

A)发现错误 B)改正错误

C)改善软件的性能 D)验证软件的正确性

(3)在面向对象方法中,实现信息隐蔽是依靠

A)对象的继承 B)对象的多态

C)对象的封装 D)对象的分类

(4)下列叙述中,不符合良好程序设计风格的是

A)程序的效率第一,清晰第二 B)程序的可读性好

C)程序中有必要的注释 D)输入数据前要有提示信息

(5)下列叙述中正确的是

A)程序执行的效率与数据的存储结构密切相关

B)程序执行的效率只取决于程序的控制结构

C)程序执行的效率只取决于所处理的数据量

D)以上三种说法都不对

(6)下列叙述中正确的是

A)数据的逻辑结构与存储结构必定是一一对应的

B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线线结构

D)以上三种说法都不对

(7)冒泡排序在最坏情况下的比较次数是

A)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2

(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231

(9)下列叙述中正确的是

A)数据库系统是一个独立的系统,不需要操作系统的支持

B)数据库技术的根本目标是要解决数据的共享问题

C)数据库管理系统就是数据库系统

D)以上三种说法都不对

(10)下列叙述中正确的是

A)为了建立一个关系,首先要构造数据的逻辑关系

B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项

C)一个关系的属性名表称为关系模式

D)一个关系可以包括多个二维表

(11)C语言源程序名的后缀是

A).exe B).C C).obj D).cp

(12)可在C程序中用做用户标识符的一组标识符是

A)and B)Date C)Hi D)case

_2007 y-m-d Dr.Tom Bigl

(13)以下选项中,合法的一组C语言数值常量是

A)028 B)12. C).177 D)0x8A

. 5e-3 OXa23 4c1.5 10,000

-0xf 4.5e0 Oabc 3.e5

(14)以下叙述中正确的是

A)C语言程序将从源程序中第一个函数开始执行

B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束

D)main可作为用户标识符,用以命名任意一个函数作为主函数

(15)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是

A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);

C)scanf("%d",p); D)scanf("%d",&p);

(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是

A)均占4个字节 B)根据数据的大小来决定所占内存的字节数

C)由用户自己定义 D)由C语言编译系统决定

(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是

A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;

(18)有以下程序段

int j; float y; char name[50];

scanf("%2d%f%s",&j,&y,name);

当执行上述程序段,从键盘上输入55566 7777abc后,y的值为

A)55566.0 B)566.0 C)7777.0 D)566777.0

(19)若变量已正确定义,有以下程序段

i=0;

do printf("%d,",i);while(i++);

printf("%d\n",i)

其输出结果是

A)0,0 B)0,1 C)1,1 D)程序进入无限循环

(20)有以下计算公式

√x (x≥0)

y=

√-x (x<0)

若程序前面已在命令中包含math.h文件,不能够正确计算上述公式的程序段是

A)if(x>=0) y=sqrt(x); B)y=sqrt(x)

else y=sqrt(-x); if(x<0) y=sqrt(-x);

C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0?x:-x);

If(x<0)y=sqrt(-x);

(21)设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是

A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)

(22)有以下程序

#include

main()

{int y=9;

for( y>0;y--)

if(y%3= =0) printf("%d",--y);

}

程序的运行结果是

A)741 B)963 C)852 D)875421

(23)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c 中的字符是否为大写字母的表达式是

A)isupper(c) B)’A’<=c<=’Z’

C)’A’<=c&&c<=’Z’ D)c<=(‘2’-32)&&(‘a’-32)<=c

(24)有以下程序

#include

main()

{int i,j,m=55;

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

for(j=3;j<=i;j++) m=m%j;

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

}

程序的运行结果是

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

(25)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是

A)函数的实参和其对应的形参共占同一存储单元

B)形参只是形式上的存在,不占用具体存储单元

C)同名的实参和形参占同一存储单元

D)函数的形参和实参分别占用不同的存储单元

(26)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。执行语句printf("%d,%d",c1,c2-2);后,输出结果是

A)A,B B)A,68 C)65,66 D)65,68

(27)以下叙述中错误的是

A)改变函数形参的值,不会改变对应实参的值

B)函数可以返回地址值

C)可以给指针变量赋一个整数作为地址值

D)当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL

(28)以下正确的字符串常量是

A)"\\\" B)’abc’ C)OlympicGames D)""

(29)设有定义:char p[]={’1’,’2’,’3’},*q=p; ,以下不能计算出一个char型数据所占字节数的表达式是

A)sizeof(p) B)sizeof(char) C) sizeof(*q) D)sizeof(p[0])

(30)有以下函数

int aaa(char *s)

{char *t=s;

while(*t++);

t--;

return(t-s);

}

以下关于aaa函数的功能叙述正确的是

A)求字符串s的长度 B)比较两个串的大小

C)将串s复制到串t D)求字符串s所占字节数

(31)若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是A)a[0][4] B)a[1][3] C)a[0][3] D)a[1][4]

(32)有以下程序

#include

void fun(char **p)

{++p; printf("%s\n",*p);}

main()

{char *a[]={"Morning","Afternoon","Evening","Night"};

fun(a);

}

程序的运行结果是

A)Afternoon B)fternoon C)Morning D)orning

(33)若有定义语句:int a[2][3],*p[3]; ,则以下语句中正确的是

A)p=a; B)p[0]=a; C) p[0]=&a[1][2]; D)p[1]=&a;

(34)有以下程序

#include

void fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/ {int t,i,j;

for(i=0;ifor(j=i+1;jif (a}

main()

{int c[10]={1,2,3,4,5,6,7,8,9,0},i;

fun(c+4,6);

for (i=0;i<10;i++) printf("%d,",c);

printf("\n");

}

程序运行的结果是

A)1,2,3,4,5,6,7,8,9,0, B)0,9,8,7,6,5,1,2,3,4,

C) 0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0,

(35)有以下程序

#include

int fun(char s[])

{int n=0;

while(*s<=’9’&&*s>=’0’) {n=10*n+*s-’0’;s++;}

return(n);

}

main()

{char s[10]={’6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’}; printf("%d\n",fun(s));

}

程序运行的结果是

A)9 B)61490 C)61 D)5

(36)当用户要求输入的字符串中含有空格时,应使用的输入函数是

A)scanf() B)getchar() C)gets() D)getc()

(37)以下关于字符串的叙述中正确的是

A)C语言中有字符串类型的常量和变量

B)两个字符串中的字符个数相同时才能进行字符串大小的比较

C)可以用关系运算符对字符串的大小进行比较

D)空串一定比空格打头的字符串小

(38)有以下程序:

#include

void fun(char *t,char *s)

{

while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{

char ss[10]=”acc”,aa[10]=”bbxxyy”;

fun(ss,aa);

printf(“%s,%s\n”,ss,aa);

}

程序运行结果是

A) accxyy , bbxxyy B) acc, bbxxyy

C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy

(39)有以下程序

#include

#include

void fun(char s[][10],int n)

{

char t;int i,j;

for(i=0;ifor(j=i+1,j/*比较字符串的首字符大小,并交换字符串的首字符 */ if(s[0])>s[j][0]{t=s[0];s[0]=s[j][0];s[j][0]=t;}

}

main()

{

char ss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc””aabcc”}

fun(ss,5); printf(“%s,%s\n”,ss[0],ss[4]);

}

程序运行结果是

A) xy,aaaacc B) aaaacc,xy

C) xcc,aabcc D) acc,xabcc

(40) 在一个C语言源程序文件中所定义的全局变量,其作用域为:

A) 所在文件的全部范围 B) 所在程序的全部范围

C) 所在函数的全部范围 D) 由具体定义位置和extern 说明来决定范围

(41)有以下程序

#include

int a=1;

int f(int c)

{static int a=2;

c=c+1;

return (a++)+c;}

main()

{ int i,k=0;

for(i=0;i<2;i++){int a=3;k+=f(a);}

k+=a;

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

}

程序运行结果是

A) 14 B) 15

C) 16 D) 17

(42)有以下程序

#include

void fun(int n,int *p)

{ int f1,f2;

if(n==1||n==2) *p=1;

else

{ fun(n-1,&f1); fun(n-2,&f2);

*p=f1+f2;

}

}

main()

{ int s;

fun(3,&s); printf("%d\n",s);

}

程序的运行结果是

A)2 B)3 C)4 D)5

(43)若程序中有宏定义行:#define N 100 则以下叙述中正确的是

A)宏定义行中定义了标识符N的值为整数100

B)在编译程序对C源程序进行预处理时用100替换标识符N

C) 对C源程序进行编译时用100替换标识符N

D)在运行时用100替换标识符N

(44)以下关于typedef的叙述错误的是

A)用typedef可以增加新类型

B)typedef只是将已存在的类型用一个新的名字来代表

C)用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D)用typedef为类型说明一个新名,通常可以增加程序的可读性

(45)有以下程序

#include

struct tt

{int x;struct tt *y;} *p;

struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};

main()

{ int i;

p=a;

for(i=1;i<=2;i++) {printf("%d,",p->x); p=p->y;}

}

程序的运行结果是

A)20,30, B)30,17 C)15,30, D)20,15,

(46)有以下程序

#include

#include

typedef struct{ char name[9];char sex; float score[2]; } STU;

STU f(STU a)

{ STU b={"Zhao",'m',85.0,90.0}; int i;

strcpy(https://www.doczj.com/doc/1a11839460.html,,https://www.doczj.com/doc/1a11839460.html,);

a. sex=

b.sex;

for(i=0;i<2;i++) a.score=b.score;

return a;

}

main()

{STU c={"Qian",'f',95.0,92.0},d;

d=f(c); printf("%s,%c,%2.0f,%2.0f\n",https://www.doczj.com/doc/1a11839460.html,,d.sex,d.score[0],d.score[1]);

}

程序的运行结果是

A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,m,85,90 D)Zhao,f,95,92

(47)设有以下定义

union data

{ int d1; float d2; }demo;

则下面叙述中错误的是

A)变量demo与成员d2所占的内存字节数相同

B)变量demo中各成员的地址相同

C)变量demo和各成员的地址相同

D)若给demo.d1赋99后, demo.d2中的值是99.0

(48)有以下程序

#include

main()

{ int a=1,b=2,c=3,x;

x=(a^b)&c; printf("%d\n",x);

}

程序的运行结果是

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

(49)读取二进制文件的函数调用形式为:fread(buffer,size,count,fp); ,其中buffer代表的是

A)一个文件指针,指向待读取的文件

B)一个整型变量,代表待读取的数据的字节数

C)一个内存块的首地址,代表读入数据存放的地址

D)一个内存块的字节数

(50)有以下程序

#include

main()

{FILE *fp; int a[10]={1,2,3,0,0},i;

fp=fopen("d2.dat,"wb");

fwrite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

for(i=0;i<10;i++) printf("%d",a);

}

程序的运行结果是

A)1,2,3,0,0,0,0,0,0,0, B)1,2,3,1,2,3,0,0,0,0,

C)123,0,0,0,0,123,0,0,0,0, D)1,2,3,0,0,1,2,3,0,0,

二、填空题(每空2分,共40分)

请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分.

(1) 软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的_[1]_______.

(2) 在两种基本测试方法中, _[2]_______测试的原则之一是保证所测模块中每一个独立路径至少要执行一次.

(3) 线性表的存储结构主要分为顺序存储结构和链式存储结构.队列是一种特殊的线性表,循环队列是队列的_[3]_______存储结构.

(4)

(5) 在E-R图中距形表示_[5]_______

(6) 执行以下程序时输入1234567,则输出结果是_[6]_______.

#include

main()

{ int a=1,b;

scanf("%2d%2d",&a&b);printf("%d %d\n",a,b);

}

(7) 以下程序的功能是:输出a、b、c三个变量中的最小值.请填空。

#include

main()

{ int a,b,c,t1,t2;

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

t1=at2=cprintf("%d\n",t2);

}

(8) 以下程序的输出结果是_[9]_______.

#include

main()

{ int n=12345,d;

while(n!=0){ d=n%10; printf("%d",d); n/=10;}

}

(9) 有以下程序段,且变量已正确定义和赋值

for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

请填空,使下面程序段的功能为完全相同

s=1.0;k=1;

while(_[10]_______){ s=s+1.0/(k*(k+1)); _[11]_______;}

printf("s=%f\n\n",s);

(10) 以下程序的输出结果是_[12]_______.

#include

main()

{ int i;

for(i='a';i<'f';i++,i++) printf("%c",i-'a'+'A');

printf("\n");

}

(11) 以下程序的输出结果是_[13]_______.

#include

#include

char *fun(char *t)

{ char *p=t;

return(p+strlen(t)/2);

}

main()

{ char *str="abcdefgh";

str=fun(str);

puts(str);

}

(12)以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.请填空.

#include

viod f(int x[],int n)

{ int p0,p1,i,j,t,m;

i=j=x[0]; p0=p1=0;

for(m=0;m{ if(x[m]>i) {i=x[m]; p0=m;}

else if(x[m]}

t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;

t=x[p1];x[p1]= _[14]_______; _[15]_______=t;

}

main()

{ int a[10],u;

for(u=0;u<10;u++) scanf("%d",&a);

f(a,10);

C语言试卷及答案

《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。

c语言程序设计试题答案

习题7 7.1选择题。 (1)下列对字符串的定义中,错误的是: A 。 A) char str[7] = "FORTRAN"; B) char str[] = "FORTRAN"; C) char *str = "FORTRAN"; D) char str[] = {'F','O','R','T','R','A','N',0}; (2)以下程序段的输出结果是:____D_________ char a[] = "ABCDE" ; char *p = NULL; for (p=a; p main() { static char a[5]; a = "abcde" ; printf("%s\n", a); }

B) #include <> main() { static char a[7]= "goodbye!"; printf("%s\n", a) ; } C) #include <> main() { char a[5] = "abcde"; printf("%s\n", a) ; } D) #include <> main() { static char a[]="abcde"; printf("%s\n", a) ; } (4)阅读下列函数,函数功能为___A_____。 void Exchange(int *p1, int *p2) { int p; p = *p1; *p1 = *p2; *p2 = p; } A)交换*p1和*p2的值B)正确,但无法改变*p1和*p2的值 C)交换*p1和*p2的地址 D)可能造成系统故障

历年二级C语言笔试真题及答案

1 2009年9月全国计算机等级考试二级笔试 试卷 1)下列数据结构中,属于非线性结构的是 A )循环队列 B) 带链队列 C) 二叉树 D )带链栈 2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树 3)对于循环队列,下列叙述中正确的是 A )队头指针是固定不变的 B )队头指针一定大于队尾指针 C )队头指针一定小于队尾指针 D )队头指针可以大于队尾指针,也可以小于队尾指针 4)算法的空间复杂度是指 A )算法在执行过程中所需要的计算机存储空间 B )算法所处理的数据量 C )算法程序中的语句或指令条数 D )算法在执行过程中所需要的临时工作单元数 5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 6)下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 7)软件详细设计产生的图如下: 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d \n”,a=2*b); } 程序运行后的输出结果是 A )0,0 B )1,0 C )3,2 D )1,2 17)设有定义:int a=1,b=2,c=3;,以下语 句中执行效果与其它三个不同的是 A )if(a>b) c=a,a=b,b=c; B )if(a>b) {c=a,a=b,b=c;} C ) if(a>b) c=a;a=b;b=c; D ) if(a>b) {c=a;a=b;b =c;} 18)有以下程序 #include main() { int c=0,k; for (k=1;k<3;k++) switch (k) {default: c+=k case 2: c++;break; case 4: c+=2;break; } printf(“%d \n”,c); } 程序运行后的输出结果是 A )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #include main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d \n”,n); } 程序运行后的输出结果是 A )0 B )2 C )3 D )5 21)有以下程序 #include main() { int n=2,k=0; while(k++&&n++>2); printf(“%d %d \n”,k,n); } 程序运行后的输出结果是 A )0 2 B )1 3 C )5 7 D )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (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); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言程序设计期末考试选择题题库

第一章1、一个C程序可能出现的错误有(A)A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束

5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double 3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab'

4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:chara;intb;floatc;doubled; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.longint C.int D.float 7、若有定义:doublex=1,y; 执行语句,则y的值是(B) A,1 B,2.0

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) 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 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

c语言程序设计期末试题B(含答案)

c语言程序设计期末试题B(含答案) 一单项选择题(每小题1分,共10分) 1. A 2. C 3. D 4. A 5. B 1.以下4组用户定义标识符中,全部合法的一组是() A)_total clu_1 sum B)if -max turb C)txt REAL 3COM D)int k_2 _001 2.以下程序的输出结果是() #include main( ) { int a = 1, b = 2, c = 3; printf(“%d”, c>b>a); } A) 2 B) 1 C) 0 D) 3 3.以下正确的叙述是() A) 在C语言中,main函数必须位于文件的开头 B) C语言每行中只能写一条语句 C) C语言本身没有输入、输出语句 D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误 4.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是() A)scanf("%d",pa); B)scanf("%d",a); C)scanf("%d",&pa); D)scanf("%d",*pa); 5.若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是() A) 0 B) 0.5 C) 1 D) 2 6. D 7. D 8. A 9. C 10. D 6.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是() A) a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10‖a<=0 7.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是() main( ) { int a,b,c,d; scanf(“%d,%d,%d%d”,&a,&b,&c,&d); … } A)1 2 3 4 B)1 2 3,4 C) 1,2,3,4 D) 1,2,3 4

C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0

8、有以下程序: #include voidmain(){ inti=1,j=1,k=2; if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 9、有以下程序: #include voidmain(){ inti,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言全部题目及答案

C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H-

C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes?

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、执行下列程序段后输出的结果是()。

大学C语言考试题库(含标准答案)

单项选择 ================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10 。printf("%d",a++) 。 A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A' 的ASCⅡ代码值是65, 字符变量c1的值是'A',c2 的值是'D'. 执行语句printf("%d,%d",c1,c2-2) 。后, 输出结果是 A、65,66 B、A,B C、 65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10] 。合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B 题号:45 能正确表示逻辑关系:" a ≥10或a≤0 " 的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0

D 题号:157 main() {int x=1,a=0,b=0 。 switch (x) { case 0: b++ 。 case 1: a++ 。 case 2: a++ 。b++。} printf("a=%d,b=%d",a,b) 。} 该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f 是实型,i 是双精度型,则表达式10+'a'+i*f 值的 数据类型为()。 A、不确定 B、double C、int D、 float 答案: B 题号:1647 以下程序中,while 循环的循环次数是______ main() { int i=0 。 while(i<10) { if(i<1) continue 。 if(i==5) break 。 i++ 。 } } A、死循环,不能确定次数 B、6 C、4 D、1

c语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由

主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言期末考试题含答案

C语言期末考试题含答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue

7.在while(!x)语句中的!x与下面条件表达式等价的是() A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include <> void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2B)2,2,1C)2,2,2D)2,2,3 9、有以下程序: #include <> void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m); B)k=fun(10,; C)fun(x,n); D)void fun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言上机作业试题5套含答案

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

相关主题
文本预览
相关文档 最新文档