1. 运算符________的优先级最高。
A.[ ]
B. +=
C. ?:
D.++
2.main( )
{ int n( n=6*4,n+6),n*2printf(“n=%d\n”,n)}
此程序的输出结果是______________.
A.30
B. 24
C. 60
D. 48
3.若有如下定义,则__________是对数组元素的正确的引用。.
int a[10] , *p p=a
A. *&a[10]
B. a[11]
C. *(p+11)
D. *p *p *p
4.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是__________
A. 0
B. 4
C. - 4
D. 2
5.各种基本数据类型的存贮空间正确的长度排列为__________。
A.Char
C.Char
6.下面的变量说明中__________是正确的。
A.char:a, b, c
B.char abc
C.char a, b, c
D.char a, b, c
7.表达式y=(13>12?15:6>7?8:9)的值为____________ 。
A 9
B 8
C 15
D. 1
8.若x=5,y=3 则y*=x+5y的值为___________.
A. 10
B. 20
C. 15
D. 30
9.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。
A.a>=0||b>=0)&&(a<0 ||b<0)
B.(a>=0 &&b>=0)&&(a<0 &&b<0)
C.(a+b>0) &&(a+b<=0)
D. a*b>0
10.C语言中,合法的字符型常数是_________。
A.‘A’
B.“A”
C. 65
D. A
11.已有定义 int x=3, y=4, z=5则表达式“!(x+y)+z-1&&y+z/2”的值是________。
A.6
B.0
C.2
D.1
12.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。
A.’a’<=c<=’z’
B. (c>=’a’) || (c<=’z’)
C.(‘a’<=c) and (‘z’>=c)
D. (c>=’a’) &&(c<=’z’)
13.设有定义:long x=-123456L则以下能够正确输出变量x值的语句是_______。
A.printf(“x=%d\n”,x)
B.printf(“x=%ld\n”,x)
C.printf(“x=l\n”,x)
C.printf(“x=%D\n”,x)
14.从循环体内某一层跳出,继续执行循环外的语句是:___________。
A. break语句
B.return语句
C.continue语句
D.空语句。
15.C语言用_______表示逻辑“真”值。
A.true
B.t或y
C.非零整型值
D.整型值0
16.为了避免嵌套的条件分支语句if—else 的二义性,C语言规定:C程序中的else总是与_____组成配对关系。
A.缩排位置相同的if
B.在其之前未配对的if
C.在其之前未配对的最近的if
D.同一行上的if
17.在函数中默认存储类型说明符的变量应该是________存储类型。
A.内部静态
B. 外部
C.自动
D. 寄存器
18.C语言中以只读方式打开一个文件应选择_______________参数。
A.“r”
B.“w”
C.“rb”
D.“a”
19.设有数组定义:char array[]=”student”则数组所占的存贮空间为__________。
A.6个字节
B. 7个字节
C. 8个字节
D. 9个字节
20.根据C语言的语法规则,下列________个是不合法标识符。
A.do
B. Name
C. R5
D. _exam
二、判断题
1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。 ( )
2.在 C 程序中 , 函数既可以嵌套定义 , 也可以嵌套调用。( )
3.在 C 程序中 ,APH 和 aph 代表不同的变量。( )
4.表达式 0195 是一个八进制整数。( )
5.Continue语句的作用是结束本次循环。( )
6.Extern变量的.生命期是整个程序执行期。 ( )
7.C语言中字符串的结束符是’\0’。 ( )
8.利用fclose函数关闭已打开的文件。 ( )。
9.C程序总是从main( ) 函数的第一条语句开始执行的。 ( )
10.数组名代表数组的首地址。( )
三、填空题
1.C语言的预处理语句以__________开头。
2.表达式7+10>2 &&25 %5的结果是_______________。
3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
Int n=0, chCh=getchar( )
While( __________________ )
{ if ( ________________ ) n++c=getchar( )}
4.C语言中getchar() 函数的功能是_________________________。
5.int *p 的含义是______________________________。
6.定义fp为文件型指针变量的定义方法为_______________。
7.数组 int a[3][3]共定义了____________个数组元素。
四、读程序题。
1. 改正下列程序中不正确的语句。
main( )
{ int a
scanf(“%d”, a)if (a = 1) printf(“One\n”) }
2.写出下列程序的运行结果。
fun(int a, int b)
{ if(a>b) return (a)
Else return (b)}
main()
{ int x=3,y=8,z=6,r
r=fun(fun(x,y),2*z)printf(“%d\n”,r)}
3. 改正下列程序中不正确的语句。
main()
{ int n
float s=1.0
for(n=10n>1n- -)
s=s+1/n
printf(“%6.1f\n”,s)}
4. 写出下列程序的运行结果。
main()
{ int n
For(n=3n<=10n++)
{ if(n%6= =0) breakPrintf(“%d”,n)} }
5.写出下列程序的运行结果。
#include “stdio.h”
Main()
{ int a[]={1,2,3,-4,5}
int m,n,*pp=&a[0]m=*(p+1)n=*(p+4)
printf(“%d %d %d ”,*p,m,n)}
五、编程题
1. 编程计算下列表达式:s=n!(n从键盘上输入)
2.输出1—100之间不能被12整除的数。
3.从键盘上输出10个整数存入一维数组中,按由大到小的顺序输出。
4.从键盘上输入9个数,按3行3列的格式输出。
5.编程将文件read.txt中的字符读出显示到屏幕上。
全国计算机二级C语言程序设计包括40个单选题(每题一分)和三道操作题(60分)。
单选题中1~10题为二级公共基础知识,考试内容包括数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分。单选题的11~40题是C语言的内容。
操作题包括程序填空(18分)、程序改错(18分)和编程题(24分)各一题。
程序填空是将一个完整的程序,扣掉两到三处,让考生将它填写完整。由于每位考生具体抽到的题目不同,程序填空有2到3个空要填。程序填空题以实际填写的内容为评分依据,填写正确一个空,给一个空的分。如果是2个空,每个空就是9分;如果是3个空每个空是6分。
程序改错也是一个完整的程序,其中有2~3处错误要求考生将他们改正。与程序填空类似,2处错误的话,每处9分,3处错误的话,每处6分。程序改错题的题目会提示每一处错误所在的行,在那一行的上一行有********found********标识。
编程题是要求考生编写一个程序,然后运行出题干要求的结果。题目中主函数main()会完整给出,在主函数中将调用fun()函数,fun函数由考生自己编写。编程题以运行结果给分,所编写完成后必须运行,否则没分。因此,大多数情况下,编程题要么就是得24分满分,要么就是0分。
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=22int i=0,k=18,则不符合C语言规定的赋值语句是
A)a=a++,i++
B)i=(a+k)<=(i+k)
C)i=a%11
D)i=!a(15)有以下程序
#include<stdio.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>代表回车,注意:回车也是一个字符)
12<CR>
34<CR>
则输出结果是
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=belse a++语句功能不同的switch语句是
A)switch(a)
{case:a=bbreak<br>default:a++<br>}<br>B)switch(a==1)<br>{case 0:a=bbreak<br>case 1:a++<br>}
C)switch(a)
{default:a++break<br>case 1:a=b<br>}
D)switch(a==1)
{case 1:a=bbreak<br>case 0:a++<br>}(19)有如下嵌套的if语句
if (a<b)
if(a<c)k=a
else k=c
else
if(b<c) k=b
else k=c
以下选项中与上述if语句等价的语句是
A)k=(a<b)?a:bk=(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:bk=(a<c)?a:c(20)有以下程序
#include<s七dio.h>
main()
{in i,j,m=1
for(i=1i<3i++)
{for(j=3j>Oj--)
{if(i*j)>3)break<br>m=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=lb=2
for(a<8a++) {b+=aa+=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 *ss="Olympic"
B)char s[7]s="Olympic"
C)char *ss={"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+1d=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=0i<5i++) 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=0i<3i++)
for(j=ij<=1j++) t+=b[i][b[j][i]]
printf("%d\n",t)
}
程序运行后的输出结果是
A)1
B)3
C)4
D)9(31)若有以下定义和语句.......这是全国2010全国c语言考试的部分题目,楼主需要的话可以自己去下载转自:酷8学习网 www.k8xx.com