您的位置:

c语言考试题及答案下载,c语言 题库

本文目录一览:

计算机二级考试(江西考区)试题c语言及答案

2010年3月全国计算机等级考试二级C语言笔试真题及参考答案一、选择题

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

A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为n

B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)

C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)

D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时间复杂度是指

A)算法的执行时间

B)算法所处理的数据量

C)算法程序中的语句或指令条数

D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是

A)编辑软件

B)操作系统

C)教务管理系统

D)浏览器(4)软件(程序)调试的任务是

A)诊断和改正程序中的错误

B)尽可能多地发现程序中的错误

C)发现并改正程序中的所有错误

D)确定程序中错误的性质(5)数据流程图(DFD图)是

A)软件概要设计的工具

B)软件详细设计的工具

C)结构化方法的需求分析工具

D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于

A)定义阶段

B)开发阶段

C)维护阶段

D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是

A)数据定义语言

B)数据管理语言

C)数据操纵语言

D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是

A)文件

B)数据库

C)字段

D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的

A)需求分析阶段

B)逻辑设计阶段

C)概念设计阶段

D)物理设计阶段(10)有两个关系R和T如下:

则由关系K得到关系T的操作是

A)选择

B)投影

C)交

D)并(11)以下叙述正确的是

A)C语言程序是由过程和函数组成的

B)C语言函数可以嵌套调用,例如:fun(fun(x))

C)C语言函数不可以单独编译

D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是

A)C语言中的注释不可以夹在变量名或关键字的中间

B)C语言中的变量可以在使用之前的任何位置进行定义

C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是

A)_1

B)AaBc

C)a_b

D)a-b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是

A)a=a++,i++;

B)i=(a+k)=(i+k);

C)i=a%11;

D)i=!a;(15)有以下程序

#includestdio.h

main()

{ char a,b,c,d;

scanf(“%c%c”,a,b);

c=getchar(); d=getchar();

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

}

当执行程序时,按下列方式输入数据(从第1列开始,CR代表回车,注意:回车也是一个字符)

12CR

34CR

则输出结果是

A)1234

B)12

C)12

3

D)12

34(16)以i关于C语言数据类型使用的叙述中错误的是

A)若要准确无误差的表示自然数,应使用整数类型

B)若要保存带有多位小数的数据,应使用双精度类型

C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是

A)1

B)0

C)2

D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是

A)switch(a)

{case:a=b;break;brdefault:a++;br}brB)switch(a==1)br{case 0:a=b;break;brcase 1:a++;br}

C)switch(a)

{default:a++;break;brcase 1:a=b;br}

D)switch(a==1)

{case 1:a=b;break;brcase 0:a++;br}(19)有如下嵌套的if语句

if (ab)

if(ac)k=a;

else k=c;

else

if(bc) k=b;

else k=c;

以下选项中与上述if语句等价的语句是

A)k=(a<b)?a:b;k=(b<c)?b:c;

B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);

C)k=(a<b)?((a<c)?a:):((b<c)?b:c);

D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序

#include<s七dio.h>

main()

{in i,j,m=1;

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

{for(j=3;j>O;j--)

{if(i*j)>3)break;brm=i*j;br}

}

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

程序运行后的输出结果是

A)m=6

B)m=2

C)m=4

D)m=5(21)有以下程序

#include(stdio.h>

main()

{int a=l;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(22)有以下程序,其中k的初值为八进制数

#include stdio.h

main()

{int k=011;

printf("%d\n",k++);

程序运行后的输出结果是

A)12

B)11

C)10

D)9(23)下列语句组中,正确的是

A)char *s;s="Olympic";

B)char s[7];s="Olympic";

C)char *s;s={"Olympic"};

D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是

A)一个自定义函数中必须有一条return语句

B)一个自定义函数中可以根据不同情况设置多条return语句

C)定义成void类型的函数中可以有带返回值的return语句

D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是

A)int num[0..2008];

B)int num[];

C)int N=2008;

int num[N];

D)#define N 2008

int num[N];(26)有以下程序

#include stdio.h

void fun(char *c,int d)

{*c=*c+1;d=d+1;

printf("%c,%c,",*c,d);

main()

{char b='a',a='A';

fun(b,a);printf("%e,%e\n",b,a);

程序运行后的输出结果是

A)b,B,b,A

B)b,B,B,A

C)a,B,B,a

D)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是

A)定义了基类型为int的三个指针变量

B)定义了基类型为int的具有三个元素的指针数组pt

C)定义了一个名为*pt、具有三个元素的整型数组

D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是

A)(*s)[3]

B)*(s+3)

C)*s[3]

D)*s+3(29)有以下程序

#include(stdio.h)

main()

{int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;

for(i=0;i<5;i++) s=s+a[b[i]]);

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

}

程序运行后的输出结果是

A)6

B)10

C)11

D)15(30)有以下程序

#include stdio.h

main()

{int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;

for(i=0;i3;i++)

for(j=ij=1;j++) t+=b[i][b[j][i]];

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

程序运行后的输出结果是

A)1

B)3

C)4

D)9(31)若有以下定义和语句.......这是全国2010全国c语言考试的部分题目,楼主需要的话可以自己去下载转自:酷8学习网

9月计算机二级《C语言》上机考题及答案

1、以下选项中属于C语言的数据类型是( )。

A. 复合型

B. 双精度型

C. 逻辑型

D. 集合型

2、以下说法中正确的是( )。

A. C语言程序总是从第一个的函数开始执行

B. 在C语言程序中,要调用的函数必须在main()函数中定义

C. C语言程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始部分

3、选出下列标识符中不是合法的标识符的是( )。

A. hot_do

B. cat1

C. _pri

D. 2ab

4、下列描述中不正确的是( )。

A、字符型数组中可能存放字符串。

B、可以对字符型数组进行整体输入、输出。

C、可以对整型数组进行整体输入、输出。

D、 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

5、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )。

A. p+1

B. a+1

C. a++

D. ++p

6、设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。

A. 1

B. 0

C. 4

D. 3

7、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i3;i++) printf("%d",x[i][2-i]); 的输出结果是( )

A. 1 5 9

B. 1 4 7

C. 3 5 7

D. 3 6 9

8、读出以下语句的输出结果是( )。

int x=10,y=10;

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

A. 10 10

B. 9 9

C. 9 10

D. 10 9

9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。

if(x++5) printf("%d",x);

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

A. 7和5

B. 6和3

C. 7和4

D. 6和4

10、设有如下定义:char *aa[2]={"abcd","ABCD"};则以下说法中正确的是( )。

A)aa数组成元素的值分别是"abcd"和ABCD"

B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的`首地址

D)aa数组的两个元素中各自存放了字符’a’和’A’的地址

11、以下语句的输出结果是( )。

int a=-1,b=4,k;

k=(+ +a0)!(b - -=0);

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

A. 1,0,4

B. 1,0,3

C. 0,0,3

D. 0,0,4

12、下列程序的输出结果是( )。

char *p1="abcd", *p2="ABCD", str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A. xyabcAB

B. abcABz

C. ABabcz

D. xycdBCD

13、执行下面的程序后,a的值是( )。

#define SQR(X) X*X

main( )

{ int a=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m);

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

A. 10

B. 1

C. 9

D. 0

14、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。

A.P+i*2

B. P+(i-1)*2

C. P+(i-1)

D. P+i

15、下列程序执行后输出的结果是( )。

int d=1;

fun (int p)

{ int d=5;

d + =p + +;

printf("%d,",d); }

main( )

{ int a=3;

fun(a);

d + = a + +;

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

A. 8, 4

B. 9, 6

C. 9, 4

D. 8, 5

16、表达式:10!=9的值是( )。

A. true

B. 非零值

C. 0

D. 1

17、若有说明: int i,j=7, *p=i;, 则与i=j; 等价的语句是( )。

A. i= *p;

B. *p=*j;

C. i=j;

D. i=* *p;

18、不能把字符串:Hello!赋给数组b的语句是( )。

A. char b[10]={’H’,’e’,’l’,’l’,’o’,’!’};

B. char b[10]; b="Hello!";

C. char b[10]; strcpy(b,"Hello!");

D.char b[10]="Hello!";

19、在C程序中有如下语句:char *func(int x,int y); 它是( )。

A. 对函数func的定义。

B. 对函数func的调用。

C.对函数func的原型说明。

D. 不合法的。

20、以下程序的输出结果是( )。

char str[15]=”hello!”;

printf(“%d\n”,strlen(str));

A. 15

B. 14

C. 7

D. 6

参考答案:

1、B 2、C 3、D 4、C 5、C 6、D 7、C 8、D 9、C 10、D

11、D 12、D 13、B 14、B 15、A 16、D 17、B 18、B 19、C 20、D

c语言二级考试题及答案

2011年3月全国计算机等级考试二级笔试试卷

C语言程序设计

(考试时间90分钟,满分100分)

一、 选择题(1-10,21-40每题2分,11-20每题1分,共70分)

(1)下列关于栈叙述正确的是

A)栈顶元素最先能被删除

B)栈顶元素最后才能被删除

C)栈底元素永远不能被删除

D)以上三种说法都不对

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

A)有一个以上根结点的数据结构不一定是非线性结构

B)只有一个根结点的数据结构不一定是线性结构

C)循环链表是非线性结构

D)双向链表是非线性结构

(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)

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

(4)在软件开发中,需求分析阶段产生的主要文档是

A)软件集成测试计划 B)软件详细设计说明书

C)用户手册 D)软件需求规格说明书

(5)结构化程序所要求的基本结构不包括

A)顺序结构 B)GOTO跳转

C)选择(分支)结构 D)重复(循环)结构

(6)下面描述中错误的是

A)系统总体结构图支持软件系统的详细设计

B)软件设计是将软件需求转换为软件表示的过程

C)数据结构与数据库设计是软件设计的任务之一

D)PAD图是软件详细设计的表示工具

(7)负责数据库中查询操作的数据库语言是

A)数据定义语言

B)数据管理语言

C)数据操纵语言

D)数据控制语言

(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是

A)1:1联系 B)1:m联系

C)m:1联系 D)m:n联系

(9)有三个关系R、S和T如下:

则由关系R和S得到关系T的操作是

A)自然连接 B)交 C)除 D)并

(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是

A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5}

(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是

A)C语言程序仅可以编译执行

B)C语言程序仅可以解释执行

C)C语言程序既可以编译执行又可以解释执行

D)以上说法都不对

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

A)C语言的可执行程序是由一系列机器指令构成的

B)用C语言编写的源程序不能直接在计算机上运行

C)通过编译得到的二进制目标程序需要连接才可以运行

D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件

(13)以下选项中不能用作C程序合法常量的是

A)1,234 B)'123'

C)123 D)"\x7G"

(14)以下选项中可用作C程序合法实数的是

A).1e0 B)3.0e0.2

C)E9 D)9.12E

(15)若有定义语句:inta=3,b=2,c=1;,以下选项中错误的赋值表达式是

A)a=(b=4)=3; B)a=b=c+1;

C)a=(b=4)+c; D)a=1+(b=c=4);

(16)有以下程序段

char name[20];

int num;

scanf("name=%s num=%d",name;num);

当执行上述程序段,并从键盘输入:name=Lili num=1001回车后,name的值为

A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001

(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是

A)必须是逻辑值 B)必须是整数值

C)必须是正数 D)可以是任意合法的数值

(18)有以下程序

#include

main()

{ int x=011;

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

}

程序运行后的输出结果是

A)12 B)11 C)10 D)9

 

(19)有以下程序

#include

main()

{ int s;

scanf("%d",s);

while(s0)

{ switch(s)

{ case1:printf("%d",s+5);

case2:printf("%d",s+4); break;

case3:printf("%d",s+3);

default:printf("%d",s+1);break;

}

scanf("%d",s);

}

}

运行时,若输入1 2 3 4 5 0回车,则输出结果是

A)6566456 B)66656 C)66666 D)6666656

(20)有以下程序段

int i,n;

for(i=0;i8;i++)

{ n=rand()%5;

switch (n)

{ case 1:

case 3:printf("%d\n",n); break;

case 2:

case 4:printf("%d\n",n); continue;

case 0:exit(0);

}

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

}

以下关于程序段执行情况的叙述,正确的是

A)for循环语句固定执行8次 B)当产生的随机数n为4时结束循环操作

C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行

 

(21)有以下程序

#include

main()

{ char s[]="012xy\08s34f4w2";

int i,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]='0's[i]='9') n++;

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

}

程序运行后的输出结果是

A)0 B)3 C)7 D)8

(22)若i和k都是int类型变量,有以下for语句

for(i=0,k=-1;k=1;k++) printf("*****\n");

下面关于语句执行情况的叙述中正确的是

A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环

(23)有以下程序

#include

main()

{ char b,c; int i;

b='a'; c='A';

for(i=0;i6;i++)

{ if(i%2) putchar(i+b);

else putchar(i+c);

} printf("\n");

}

程序运行后的输出结果是

A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef

(24)设有定义:doublex[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是

A)scanf("%f",x[6]); B)scanf("%lf",*(x+6));

C)scanf("%lf",p+6); D)scanf("%lf",p[6]);

(25)有以下程序(说明:字母A的ASCII码值是65)

#include

void fun(char *s)

{ while(*s)

{ if(*s%2) printf("%c",*s);

s++;

}

}

main()

{ char a[]="BYTE";

fun(a); printf("\n");

}

程序运行后的输出结果是

A) BY B) BT C) YT D) YE

(26)有以下程序段

#include

main()

{ …

while( getchar()!='\n');

}

以下叙述中正确的是

A)此while语句将无限循环

B) getchar()不可以出现在while语句的条件表达式中

C)当执行此while语句时,只有按回车键程序才能继续执行

D)当执行此while语句时,按任意键程序就能继续执行

(27)有以下程序

#include

main()

{ int x=1,y=0;

if(!x) y++;

else if(x==0)

if (x) y+=2;

else y+=3;

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

}

程序运行后的输出结果是

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

(28)若有定义语句:chars[3][10],(*k)[3],*p;,则以下赋值语句正确的是

A)p=s; B)p=k; C)p=s[0]; D)k=s;

(29)有以下程序

#include

void fun(char *c)

{ while(*c)

{ if(*c='a'*c='z') *c=*c-('a'-'A');

c++;

}

}

main()

{ char s[81];

gets(s); fun(s); puts(s):

}

当执行程序时从键盘上输入Hello Beijing回车,则程序的输出结果是

A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing

(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。

#include

#define N 10

void fun(int x[N])

{ int i=0;

while(i

}

在程序中下划线处应填入的是

A)x+i B)x[i+1]C)x+(i++) D)x[++i]

(31)有以下程序

#include

main()

{ char a[30],b[30];

scanf("%s",a);

gets(b);

printf("%s\n %s\n",a,b);

}

程序运行时若输入:

how are you? I am fine回车

则输出结果是

A)how are you? B)how I am fine are you? I am fine

C)how are you? I am fine D)row are you?

(32)设有如下函数定义

int fun(int k)

{ if (k1) return 0;

else if(k==1) return 1;

else return fun(k-1)+1;

}

若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是

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

(33)有以下程序

#include

int fun (int x,int y)

{ if (x!=y) return ((x+y);2);

else return (x);

}

main()

{ int a=4,b=5,c=6;

printf("%d\n",fun(2*a,fun(b,c)));

}

程序运行后的输出结果是 A)3 B)6 C)8 D)12

(34)有以下程序

#include

int fun()

{ static int x=1;

x*=2;

return x;

}

main()

{ int i,s=1;

for(i=1;i=3;i++) s*=fun();

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

}

程序运行后的输出结果是 A)0 B)10 C)30 D)64

(35)有以下程序

#include

#define S(x) 4*(x)*x+1

main()

{ int k=5,j=2;

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

}

程序运行后的输出结果是 A)197 B)143 C)33 D)28

(36)设有定义:struct {charmark[12];int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是

A)t1=t2; B)t2.num1=t1.num1;C)t2.mark=t1.mark; D)t2.num2=t1.num2;

(37)有以下程序

#include

struct ord

{ int x,y;}dt[2]={1,2,3,4};

main()

{

struct ord *p=dt;

printf("%d,",++(p-x));printf("%d\n",++(p-y));

}

程序运行后的输出结果是 A)1,2 B)4,1 C)3,4 D)2,3

(38)有以下程序

#include

struct S

{ int a,b;}data[2]={10,100,20,200};

main()

{ struct S p=data[1];

printf("%d\n",++(p.a));

}

程序运行后的输出结果是 A)10 B)11 C)20 D)21

(39)有以下程序

#include

main()

{ unsigned char a=8,c;

c=a3;

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

}

程序运行后的输出结果是 A)32 B)16 C)1 D)0

(40)设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是

A)写操作结束后可以从头开始读 B)只能写不能读

C)可以在原有内容后追加写 D)可以随意读和写

二、填空题

(1)有序线性表能进行二分查找的前提是该线性表必须是 【1】 存储的。

(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为 【2】 。

(3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为【3】 测试

(4)实体完整性约束要求关系数据库中元组的 【4】 属性值不能为空。

(5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称 【5】 是关系A的外码。

(6)以下程序运行后的输出结果是 【6】。

#include

main()

{ int a;

a=(int)((double)(3/2)+0.5+(int)1.99*2);

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

}

(7)有以下程序

#include

main()

{ int x;

scanf("%d",x);

if(x15) printf("%d",x-5);

if(x10) printf("%d",x);

if(x5) printf("%d\n",x+5);

}

若程序运行时从键盘输入12回车,则输出结果为 【7】 。

(8)有以下程序(说明:字符0的ASCII码值为48)

#include

main()

{ char c1,c2;

scanf("%d",c1);

c2=c1+9;

printf("%c%c\n",c1,c2);

}

若程序运行时从键盘输入48回车,则输出结果为 【8】 。

(9)有以下函数

void prt(char ch,int n)

{ int i;

for(i=1;i=n;i++)

printf(i%6!=0?"%c":"%c\n",ch);

}

执行调用语句prt('*',24);后,函数共输出了 【9】 行*号。

(10)以下程序运行后的输出结果是 【10】。

#include

main()

{ int x=10,y=20,t=0;

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

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

}

(11)己知a所指的数组中有N个元素。函数fun的功能是,将下标k(k0)开始的后续元素全部向前移动一个位置。请填空。

void fun(int a[N],int k)

{ int i;

for(i=k;i

}

(12)有以下程序,请在 【12】 处填写正确语句,使程序可正常编译运行。

#include

【12】 ;

main()

{ double x,y,(*p)();

scanf("%lf%lf",x,y);

p=avg;

printf("%f\n",(*p)(x,y));

}

double avg(double a,double b)

{ return((a+b)/2);}

(13)以下程序运行后的输出结果是 【13】。

#include

main()

{ int i,n[5]={0};

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

{ n[i]==n[i-1]*2+1; printf("%d",n[i]); }

printf("\n");

}

(14)以下程序运行后的输出结果是 【14】。

#include

#include

#include

main()

{ char *p; int i;

p=(char *)malloc(sizeof(char)*20);

strcpy(p,"welcome");

for(i=6;i=0;i--) putchar(*(p+i));

printf("\n-"); free(p);

}

(15)以下程序运行后的输出结果是 【15】。

#include

main()

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

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

fwrite(x,sizeof(int),3,fp);

rewind(fp);

fread(x,sizeof(int),3,fp);

for(i=0;i6;i++) printf("%d",x[i]);

printf("\n");

fclose(fp);

}

2011年3月全国计算机等级考试二级笔试试卷

C语言程序设计答案

一.选择题1-5 ABDDB

6-10 ACDCB 11-15 ADBAA

16-20 ADCAD 21-25 BDBCD

26-30 CDCCC 31-35 BBBDB

36-40 CDDCB

二,填空题

1) 顺序 2) DEBFCA 3) 单元测试 4) 主键 5) D 6) 3 7) 1217

8) 09 9) 4 10) 20 0 11) i-1 12) double avg(doublea,double b) 13) 13715

14) e(E)moclew 15) 123456

2010年9月全国计算机等级考试二级C笔试试卷答案

一、选择题

1~5: BCDAA 6~10:DDCCA 11~15:CBBAD 16~20: DAACB

21~25: BCBDC 26~30 :CBDDA 31~35:ACBCD 36~40 :BACBD

二、填空

1.1DCBA2345 2.n-1 3.25 4.结构化 5.物理设计 6.2008

7.15 8.非0 9. 1 4 13 40 10.i 11.2

12.a[row][col] 13.3 14.*s 15.FILE

求一份大一c语言考试试卷,加答案

附件上传失败...

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

1、构成C语言的基本单位是___B____。

过程?

函数?

语句?

命令?

2、设x为整型变量,不能正确表达数学关系:5x10的c语言表达式是__B___。

5

x5x10?

x==6||x==7||x==8||x==9?

!(x=5)(x10)?

3、在C语言中,逻辑运算符的优先级从高到低的排列顺序为__D___。

、||、!?

||、、!?

、!、||?

!、、||?

4、下面语句中,正确的是__D___。

printf("%c\n","student");?

printf("%c\n","c");?

printf("%s\n",a);?

printf("%s\n","hello");?

5、对于for(表达式1;;表达式3)可以理解为__B___。

for(表达式1;0;表达式3)?

for(表达式1;1;表达式3)?

for(表达式1;表达式1;表达式3)?

for(表达式1;表达式3;表达式3)?

6、执行下面程序段的结果是__B___。 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=1,b=1?

a=2,b=1?

a=1,b=0?

a=2,b=2?

7、执行下面程序段的结果是__D___。 int x=0; do { printf(“%2d”,x--); }while(x);

打印出321?

打印出23?

不打印任何结果?

陷入死循环?

8、设x=10,y=5;z=15,执行下面一段程序后z的结果是__C___。 If(xy) if(yz)x=y; else z=y;

7?

6?

5?

4?

9、如果一个函数被说明为static,那么__B___。

该函数只能被main函数调用?

该函数能被当前文件的函数调用,但不能被其他文件的函数调用?

该函数不能被当前文件的函数调用,可以被其他文件的函数调用?

任何文件的函数都可以调用该函数?

10、下面关于局部变量的描述中,错误的是__D___。

函数的局部变量的有效范围只能在本函数?

函数的形式参数也是局部变量?

局部变量的名称不能和函数同名称?

不同的函数中不能定义相同名称的局部变量?

11、下列初始化字符数组的语句中,错误的是__A___。

char str[5]="hello";?

char str[]={'h','e','l','l','o','\0'};?

char str[5]={"hi"};?

char str[100]="";?

12、引用数组元素时,数组下标可以是__D___。

整型常量?

整型变量?

整型表达式?

以上均可?

13、 已知:char str[10],*p=str; 下面的语句中正确的是__B___。

str="ABC";?

p="ABC";?

*str="ABC";?

*p="ABC";?

14、下面语句中,错误的是___D__。

int i;int *p;p=i;?

int i,*p;p=a;?

int i,*p=a;?

int i,*p;*p=i;?

15、下面对于结构体类型的描述正确的是__A___。

结构体类型的大小为各成员变量所占内存的总和?

结构体类型变量与简单数据类型变量的引用规则一致。?

结构体类型的大小为其成员中所占内存空间最大的变量的大小?

结构体类型的大小为其最后一个成员中所占内存空间的大小?

16、C语言规定:在一个源程序中,main函数的位置____C____。

必须在最开始?

必须在系统调用的库函数的后面?

可以任意?

必须在最后?

17、表达式18/4*sqrt(4.0)/8值的数据类型是 ___C____。

int?

float?

double?

不确定?

18、在c语言中,char型数据在内存中的存储形式是 ___D___。

补码?

反码?

原码?

ASCII码?

19、阅读以下程序,当输入的数据形式为:25,13,10CR时,正确的输出结果为___D___。 main() { int x,y,z; scanf("%d%d%d",x,y,z); printf("x+y+z=%d\n",x+y+z); }

x+y+z=48?

x+y+z=35?

x+z=35?

不能确定?

20、有如下程序 void main() { float x=2.0,y; if(x0.0) y=0.0; else if(x10.0) y=1.0/x; else y=1.0; printf(“%f\n”,y); } 该程序的输出结果是( C )。

0.000000?

0.250000?

0.500000?

1.000000?

21、判断char型变量s是否为小写字母的正确表达式是__C____。

'a'=s='z'?

(s='a')(s='z')?

(s='a')(s='z')?

('a'=s)and('z'=s)?

22、执行以下语句后,y 的值为___A___。 int x,y,z; x=y=z=0; ++x || ++y ++z;

0?

1?

2?

不确定值?

23、有如下程序段: int number=0; while(number++=3) printf(“%d\n”,number++); 则正确的执行结果是___C___。

2 3 4?

0 1 2?

1 3?

2 4?

24、有如下程序 void main() { int n=9; while(n6) { n--; printf(“%d”,n); } } 该程序段的输出结果是__B___。

987?

876?

8765?

9876?

25、要使以下程序段输出10个整数,请在空格中填入一个整数。 for(i=0;i=___B___;printf("%d\n",i+=2));

15?

18?

20?

10?

26、设函数fun的定义形式为: fun(char ch,float x){…} 则以下对函数fun的调用语句中正确的是___B___。

fun(“abc”,3)?

t=fun(‘D’,5)?

fun(‘ab’,3)?

fun(‘78’,1)?

27、函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。 Main() { printf("The sum=%d\n",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i=n;i++) _____B_____ } 请从备选答案中选择一答案,补全程序。

s=s+n;return s;?

s=s+i;return s;?

return s;?

return s+=I;?

28、设函数fun的定义形式为 int fun(int a[],int n) { int s=0,i=0; for(i=0;in;i++)s+=a[i]; return s; } main() { int a[10]={1,2,3,4,5}; printf("sum=%d", fun(a[2],2)); } 则程序的运行结果为___C___。

3?

5?

7?

9?

29、若有说明:int a[10];则对数组元素的正确引用是___D____。

a[10]?

a[3,5]?

a(5)?

a[10-10]?

30、以下不正确的定义语句是___B___。

double x[5]={2.0,4,0,6,0,8,0,10.0};?

int y[5]={0,1,3,5,7,9};?

char c1[]={'1','2','3','4','5'};?

char c2[]={'\x10','\xa','\x8'};?

31、下面程序的运行结果是___B____。 #include "stdio.h" main() { char str[]="SWLIA",c; int k; for(k=0;(c=str[k])!='\0';k++) { switch(c) { case 'I':++k;break; c

SWA?

SW*?

SW*A?

SW?

32、以下能正确进行字符串赋值操作的是___D___。

char s[5]={"12345"};?

char s[5]={'1','2','3','4','5',‘6’};?

char *s;*s="12345";?

char *s="12345";?

33、以下程序段的运行结果是___C___。 Char a[ ]="program", *p; p=a; while (*p!='g') { printf("%c", *p-32); p++; }

PROgram?

PROGRAM?

PRO?

proGRAM?

34、若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是__C____。

*pc[0]代表的是字符串"aaa"的首地址?

*pc[0]代表的是字符'a'的首地址?

pc[0]代表的是字符串"aaa"的首地址?

pc[0]代表的是字符'a'的首地址?

35、下列程序的运行结果是___B___。 #include stdio.h #include string.h void f (char *s, int n) { char a,*q1,*q2; q1=s;q2=s+n-1; while(q1q2) { a=*q1++; *q1=*q2--; *q2=a;} } main() { char b[]="ABCDEFG"; f(b, s

GAGGAGA?

AGAAGAG?

GFEDCBA?

AGADAGA?

36、定义如下的结构体描述同学信息 struct Student { unsigned long id; char name[30]; char class[30]; }s; 假设此同学的序号为1002,姓名为黎明,班级为冶金3班,则描述正确的为___C__。

id=1002; name=黎明; class=冶金3班;?

id=1002; name=”黎明”; class=”冶金3班”;?

s.id=1002; s.name=”黎明”; s.class=”冶金3班”;?

s.id=1002; s.name=黎明; s.class=冶金3班;?

37、用来描述C程序中注释的是__C___。

//?

?

**?

38、下列变量中合法的定义是__A___。

short _a=2-1?

long if=0xabcL?

double 1_d=1.5e2?

float a=1.5e2.7?

39、当c的值不为0时,能够将c的值赋给变量a和b的是__C___

c=b=a?

(a=c)||(b=c)?

(a=c)(b=c)?

a=c=b?

40、设有以下程序段,执行后的输出结果是___B__ int x=100,y=200; printf("%d",(x,y));

100?

200?

100,200?

编译出错

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

1、若执行下面的程序时从键盘输入10,则输出是__B__ main( ) { int a; scanf(“%d”,a); if(a++10) printf(“%d\n”,++a); else printf("%d\n",a--); }

12?

11?

10?

9?

2、执行下面程序段的结果是__D___ int x=0; do { printf(“%2d”,x--); }while(x);

打印出321?

打印出23?

不打印任何结果?

陷入死循环?

3、执行与句:for(n=0;n++4; ); 后,变量n的值是__C__。

3?

4?

5?

不定?

4、以下关于循环的描述中,错误的是__D___。

可以用for语句实现的循环一定可以用while语句实现?

可以用while语句实现的循环一定可以用for语句实现?

可以用do…while语句实现的循环一定可以用while语句实现?

do…while语句与while语句的区别仅仅是关键字while的位置不同?

5、下面的描述错误的是__C__。

函数可以有多个形式参数?

函数可以没有返回值?

函数内可以嵌套定义函数?

函数可以被其他函数调用?

6、函数返回值的类型是由__A__决定的。

定义函数时指定的返回类型?

函数中return语句的表达式类型?

主调函数的实际参数类型?

主调函数的返回值类型?

7、定义了一维int型数组a[10]后,下面错误的引用是__B__。

a[0]=1;?

a[10]=2;?

a[0]=5*2;?

a[1]=a[2]*a[0];?

8、定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为__B__。

24?

25?

18?

17?

9、下面语句中,错误的是__D__。

int i; int *p; p=i;?

int i,*p; p=a;?

int i,*p=a;?

int i,*p; *p=i;?

10、 已知int型二维数组a[3][4],数组元素a[1][2]的地址不能表达为__C__。

a[1][2]?

a[1]+2?

*a[1]+2?

*(a+1)+2?

11、C语言中,5种基本数据类型的存储空间长度的排列顺序为___A___。

char

char=int

char

char=int=long int=float

12、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是 ___B___。

7?

8?

6?

2?

13、若有说明语句:char c='\72';则变量c ___A___。

包含1个字符?

包含2个字符?

包含3个字符?

说明不合法,c的值不确定?

14、若x,y均定义为整型,z定义为double型,以下不合法的scanf函数调用语句是___C___。

scanf("%d%lx,%le",x,y,z);?

scanf("%2d * %d%lf",x,y,z);?

scanf("%x%*d%o",x,y,z);?

scanf("%x%o%6.2f",x,y,z);?

15、若输入字符串:abcde回车,则以下while循环体将执行___A___次。 while((ch=getchar())=='e') printf("*");

1次?

死循环?

0次?

5次?

16、执行下面的程序段后,k的值是___C___。 k=1;n=263; do{k*=n%10;n/=10;}while(n);

3?

63?

36?

2?

17、下面程序段中循环的执行次数是___B___。 a=10;b=0; do{b+=2;a-=2+b;}while(a=0);

10?

3?

5?

4?

18、下面程序段的运行结果是__D____。 x=2; do{printf("*");x--;}while(!x==0);

*?

***?

没有输出?

**?

19、下面程序段的运行结果是___B___。 i=1;s=1;a=0; do{a=a+s*i;s=-s;i++;}while(i=10); printf("%d",a);

2?

-2?

3?

0?

20、有如下程序 void main() { int a=2,b=-1,c=2; if(a) if(b0) c=0; else c++; printf("%d\n",c); } 该程序的输出结果是___A___。

0?

1?

2?

3?

21、程序中对fun函数有如下说明 void fun(); 下面说明是错误的是___B___。

fun函数无返回值?

fun函数的返回值可以是任意的数据类型?

fun函数没有形式参数?

void 可以省略?

22、函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。 main() { printf("The sum=%d\n",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i=n;i++) _____B_____ } 请从备选答案中选择一答案,补全程序。

s=s+n; return s;?

s=s+i; return s;?

return s;?

return s+=i;?

23、 有以下程序 int f1(int x,int y){return xy?x:y;} int f2(int x,int y){return xy?y:x;} main() { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf()__A___

4,3,7?

3,4,7?

5,2,7?

2,5,7?

24、若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是___B___。

2?

3?

4?

无确定值?

25、判断字符串s1是否大于字符串s2,应当使用___D____。

if(s1s2)?

if(strcmp(s1,s2))?

if(strcmp(s2,s1)0)?

if(strcmp(s1,s2)0)?

26、当运行以下程序时,从键盘输入:AhaMA AhaCR CR表示回车,则下面程序的运行结果是___A____。 #include "stdio.h" main() { char s[80],c='a'; int i=0; scanf("%s",s); while(s[i]!='\0') { if(s[i]==c)

ahAMa?

AhAMa?

AhAMa ahA?

ahAMa ahA?

27、以下程序执行后a的值为___C____。main( ) { int a,m=2, k=1, *p=k; a=p!=m; printf("%d\n",a); }

-1?

0?

1?

2?

28、以下能正确读入字符串的程序段是____C___。

char *p;scanf("%s", p);?

char str[10];scanf("%s", str);?

char str[10], *p;p=str; scanf("%s", p);?

char str[10], *p=str;scanf("%s", p[1]);?

29、若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是___B___。

i=x[1][1] ?

i=*(*(x+1))?

i=*(*(x+1)+1)?

i=*(x[1]+1)?

30、下面程序的运行结果是____A___。 # include stdio.h # include string.h fun(char *s) { char t,*a,*z; a=s; z=s+strlen(s)-1; while(a++z--) { t=*a++; *a=*z--; *z=t;} } main() { char *p; p="a

abdddfg?

afcdebg?

gbedcfa?

gfedcba?

31、用来描述C程序中注释的是__C___

/ /?

?

* *?

32、对于"xy\n\102\\\'"字符串的长度是__B___

7?

6?

12?

13?

33、已知:int x=10;执行语句x-=x+x;后x的值是__A___

-10?

10?

-20?

20?

34、下列描述中,正确的是__A___

所有的输入/输出都是通过调用库函数处理的?

所有的输入/输出都是通过输入/输出语句实现的?

getchar和putchar可以省略#include?

在输入/输出格式中的*表示跳过数据的含义?

35、设x=10,y=5;z=15,执行下面一段程序后z的结果是__C___ if(xy) if(yz)x=y; else z=y;

7?

6?

5?

4?

36、执行下面程序段的结果是__D___ int x=0; do { printf(“%2d”,x--); }while(x);

打印出321?

打印出23?

不打印任何结果?

陷入死循环?

37、以下关于switch语句和break语句的描述正确的是__D___

在switch语句中必须使用break语句?

break语句只能用于switch语句体中?

break语句只能用于循环语句中?

在switch语句中可以使用break语句?

38、与语句while(!x)等价的语句是__A___

while(x==0)?

while(x!=0)?

while(x!=1)?

while(~x)?

39、下面的描述错误的是__C___

?函数可以有多个形式参数?

?函数可以没有返回值?

?函数内可以嵌套定义函数?

?函数可以被其他函数调用?

40、 下面关于局部变量的描述中,错误的是__D___

?函数的局部变量的有效范围只能在本函数?

?函数的形式参数也是局部变量?

?局部变量的名称不能和函数同名称?

?不同的函数中不能定义相同名称的局部变

计算机二级C语言笔试题和面试题答案目

如下这份计算机二级C语言笔试题目对于要考基计算机二级证书的朋友来说,应该会很有帮助,需要的朋友赶紧收藏吧!

一、选择题((1)-(10),(21)-(40)每题2分,(11)-(20)每题1分,共70分)

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

1. 下列叙述中正确的是

A 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

B 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

C 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

D 上述三种说法都不对 答案:B

2. 下列叙述中正确的是

A 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

B 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

C 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

D 上述三种说法都不对 答案:C

3. 软件测试的目的是

A 评估软件可靠性 B 发现并改正程序中的错误 C 改正程序中的错误

D 发现程序中的错误 答案:B

4. 下面描述中,不属于软件危机表现的是

A 软件过程不规范 B 软件开发生产率低 C 软件质量难以控制

D 软件成本不断提高 答案:A

5. 软件生命周期是指

A 软件产品从提出、实现、使用维护到停止使用退役的过程

B 软件从需求分析、设计、实现到测试完成的过程 C 软件的开发过程

D 软件的运行维护过程 答案:A

6. 面向对象方法中,继承是指

A 一组对象所具有的相似性质 B 一个对象具有另一个对象的性质 C 各对象之间的共同性质 D 类之间共享属性和操作的机制 答案:D

7. 层次型、网状型和关系型数据库划分原则是

A 记录长度 B 文件的大小 C 联系的复杂程度

D 数据之间的联系方式 答案:D

8. 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是

A 一对一B 一对多C 多对多D 多对一 答案:C

9. 数据库设计中反映用户对数据要求的模式是

A 内模式B 概念模式C 外模式D 设计模式 答案:C

10. 有三个关系R、S和T如下:则由关系R和S得到关系T的操作是

A 自然连接B 交C 投影D 并 答案:A

11. 以下关于结构化程序设计的叙述中正确的是

A 一个结构化程序必须同时由顺序、分支、循环三种结构组成

B 结构化程序使用goto语句会很便捷 C 在C语言中,程序的模块化是利用函数实现的

D 由三种基本结构构成的程序本文由论文联盟收集整理只能解决小规模的问题 答案:C

12. 以下关于简单程序设计的步骤和顺序的说法中正确的是

A 确定算法后,整理并写出文档,最后进行编码和上机调试

B 首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档

C 先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档

D 先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构 答案:D

13. 以下叙述中错误的是

A C程序在运行过程中所有计算都以二进制方式进行 B C程序在运行过程中所有计算都以十进制方式进行 C 所有C程序都需要编译链接无误后才能运行

D C程序中整型变量只能存放整数,实型变量只能存放浮点数 答案:B

14. 有以下定义:inta; longb; doublex,y;则以下选项中正确的表达式是

A a%(int)(x-y) B a=x!=y; C (a*y)%b D y=x+y=x 答案:C

15. 以下选项中能表示合法常量的是

A 整数:1,200 B 实数:1.5E2.0 C 字符斜杠:‘\’ D 字符串:"\007" 答案:C

16. 表达式a+=a-=a=9的值是

A 9 B _9 C 18 D 0 答案:D

17. 若变量已正确定义,在if (W)printf(“%d\n,k”);中,以下不可替代W的是

A ab+c B ch=getchar() C a==b+c D a++ 答案:A

18. 有以下程序

#include

main()

{inta=1,b=0;

if(!a) b++;

elsEif(a==0)if(a)b+=2;

elseb+=3;

printf(”%d\n”,b);

程序运行后的输出结果是

A 0 B 1 C 2 D 3 答案:C

20. 有以下程序

#include

main()

{int a=1,b=2;

while(a6){b+=a;a+=2;b%二10;}

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

程序运行后的输出结果是

A 5,11 B 7,1 C 7,11 D 6,1 答案:D

21. 有以下程序

#include

main()

{int y=10;

while(y--);

printf(”Y=%d\n”,Y);

程序执行后的输出结果是

A y=0 B y= -1 C y=1 D while构成无限循环 答案:B

22. 有以下程序

#include

main()

{char s[」=”rstuv";

printf(”%c\n”,*s+2);

程序运行后的输出结果是

A tuv B 字符t的ASCII码值 C t D 出错 答案:D

23. 有以下程序

#include

#include

main()

{char x[]=”STRING”;

x[0」=0;x=’\0’;x[2」=’0’;

printf(”%d%d\n”,sizeof(x),strlen(x));

程序运行后的输出结果是

A 61 B 70 C 63 D 71 答案:B

24. 有以下程序

#include

Int f(intx);

main()

{intn=1,m;

m=f(f(f(n)));printf(”%d\n”,m);

intf(intx)

{returnx*2;}

程序运行后的输出结果是

A 1 B 2 C 4 D 8 答案:D

25. 以下程序段完全正确的是

A int *p;scanf("%d",p); B int *p;scanf(“%d”,p);

C int k, *p=k;scanf("%d",p); D int k, *p:;*p= k; scanf(“%d”,p); 答案:D

26. 有定义语句:int *p[4];以下选项中与此语句等价的是

A intp[4]; B int**p; C int*(p「4」); D int (*p)「4」; 答案:D

27. 下列定义数组的语句中,正确的是

A B C intx[0..10]; D int x[]; 答案:B

28. 若要定义一个具有5个元素的整型数组,以下错误的定义语句是

A inta[5]=﹛0﹜; B intb[]={0,0,0,0,0}; C intc[2+3]; D inti=5,d[i]; 答案:A

29. 有以下程序

#include

voidf(int *p);

main()

{inta[5]={1,2,3,4,5},*r=a;

f(r);printf(”%d\n”;*r);

void f(int *p)

{p=p+3;printf(”%d,”,*p);}

程序运行后的输出结果是

A 1,4 B 4,4 C 3,1 D 4,1 答案:D

30. 有以下程序(函数fun只对下标为偶数的元素进行操作)

# include

void fun(int*a;int n)

{int i、j、k、t;

for (i=0;i

C语言考试试题答案

1. 11,12.

2. { ,}, 变量声明,函数体.

3. int,float,double.

4. 存储空间.

5. 将10赋值给变量s.

6. ;

7. 1,0.

8. 高