2012年9月全国计算机等级考试二级C语言有答案真题

合集下载

2012年9月份二级C语言答案汇总(100套题)

2012年9月份二级C语言答案汇总(100套题)

.,, ( 共 4 套 )来自52、 17、 21,,,,,,,,,,,,,,,,,,,, 十二、四舍五入操作
.,,,,
.(共 3 套 )
16,,,,,,,,,,,,,,,,,,,, 十三、链表操作
.,,,,,,,,
.( 共 1 套 )
22、 85. ,,,,,,,,,,,,,, 十四、其它
.,,,,,,,,,,,
for(i=1;i<=1000;i++) if((i%7==0||i%11==0)&&(i%77!=0)) a[cnt++]=i; *n=cnt;
}
3. 参考答案 :
1. n-- 2.s[i]=s[n] 参考答案 :
3.s[n]=t
1.s[j]=s[i]; 应改为 :s[j++]=s[i]; 2.s[j]= ” \0” ;应改为 :s[j]= ’ \0’ ; 参考答案 :
void fun(int x, int pp[], int *n)
{
int i,cnt=0;
for(i=1;i<=x;i++) if((x%i==0)&&(i%2!=0)) pp[cnt++]=i;
*n=cnt;
}
4. 参考答案 :
1.i<=n 2.|| 3.1.0 参考答案 : 1.void fun(char *s,int a,int b) 应改为 void fun(char *s,int *a,int *b) 2.a++ 应改为 (*a)++; 3.b++ 应改为 (*b)++; 参考答案 :---------26 分 void fun(char *tt, int pp[]) {int i;

2012年9月计算机二级C语言上机题库及答案(破译版)

2012年9月计算机二级C语言上机题库及答案(破译版)

计算机二级c语言上机题库内部资料,切勿外传!.第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio.h>long fun(int n){if (___1___)return (n*fun(___2___));return ___3___;}main(){p rintf("10!=%ld\n", fun(10));}第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。

例如,若输入整数2310,则应输出:2、3、5、7、11。

请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2 and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1处:Isprime(int n);应改为Isprime(int n)第2处:if !(n%i)应该为if(!(n%i))编程题M个人的成绩存放在score数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。

2012年9月全国计算机c语言试题

2012年9月全国计算机c语言试题

2006年4月全国计算机等级考试二级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)对如下二叉树ABDECF进行后序遍历的结果为A)ABCDEF B)DBEAFC C)ABDECF D)DEBFCA(7)在深度为7的满二叉树中,叶子结点的个数为A)32 B)31 C)64 D)63(8)“商品”与“顾客”两个实体集之间的联系一般是A)一对一 B)一对多 C)多对一 D)多对多(9)在E-R图中,用来表示实体的图形是A)矩形 B)椭圆形 C)菱形 D)三角形(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是A)DB包含DBS和DBMS B)DBMS包含DB和DBSC)DBS包含DB和DBMS D)没有任何关系(11)以下不合法的用户标识符是A)j2_KEY B)Double C)4d D)_8_(12)以下不合法的数值常量是A)011 B)1e1 C)8.0E0.5 D)0xabcd(13)以下不合法的字符常量是A)′\018′B)′\"′C)′\\′D)′\xcc′(14)表达式3.6-5/2+1.2+5%2的值是A)4.3 B)4.8 C)3.3 D)3.8(15)以下能正确定义字符串的语句是A)char str[]={′\064′}; B)char str="kx43";C)char str="; D)char str[]="\0";(16)以下数组定义中错误的是A)int x[][3]={0};B)int x[2][3]={{l,2},{3,4},{5,6}};C)int x[][3]={{l,2,3},{4,5,6}};D)int x[2][3]={l,2,3,4,5,6};(17)若要求从键盘读入含有空格字符的字符串,应使用函数A)getc() B)gets() C)getchar()D)scanf()(18)以下四个程序中,完全正确的是A)#include <stdio.h>B)#include <stdio.h>main();main(){/*programming*/{/*/ programming /*/printf("programming!\n");}printf("programming!\n");}C) #include <stdio.h>D) include <stdio.h>main()main(){/*/*programming*/*/{/*programming*/printf("programming!\ n");}printf("programming!\n");}(19)若有定义:floatx=1.5;int a=1,b=3,c=2;则正确的switch语句是A)switch(x)B)switch((int)x);{case 1.0:printf("*\n"); {case 1:printf("*\n");case 2.0:printf("**\n");} case 2:printf("**\n");}C)switch(a+b)D)switch(a+b){case 1:printf("*\n");{case 1:printf("*\n");case 2+1:printf("**\n");}case c:printf("**\n");}(20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是A)main()B)float fun(int a,int b){……}{……x=fun(2,10);……}main()float fun(int a,int b){……}{……x=fun(i,j);……}C)float fun(int,int);D)main()main() {float fun(int i,int j);{……x=fun(2,10);……} ……x=fun(i,j);……}float fun(int a,int b){……} float fun(int a,int b){……}(21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是A)(!E==0) B)(E>0‖E<0) C)(E==0) D)(E!=0)(22)要求通过while循环不断读入字符,当读入字母N时结束循环。

2012年9月全国计算机的等级考试二级C语言笔试试卷答案详解及解析汇报汇报

2012年9月全国计算机的等级考试二级C语言笔试试卷答案详解及解析汇报汇报

(1)下列链表中,其逻辑结构属于非线性结构的是_________。

A)双向链表B) 带链的栈 C) 二叉链表D) 循环链表(1)C 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps 中第13张说明:链表存储结构是数据的存储结构;排除链表因素,从数据逻辑结构来看,线性结构包括线性表、栈和队;非线性结构包括树形结构和图形结构,所以二叉树是树形结构,即非线性结构。

(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。

现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A) 20 B) 0或35 C) 15 D) 16(2)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第100-101张关于入队(Q.rear=Q.rear+1)与退队(Q.front=Qfront+1)运算规则,此外第一次入队为Q.rear=1;第一次退队为Q.front=1。

并假定循环队列最大个数为maxsize,其相应存储空间为1: maxsize,则循环队列的入队与退队图例和运算后元素个数的确定原则如下:循环队列中的元素个数或称队列长度通用计算公式:(Q.rear-Q.front+ maxsize)% maxsize 例如,Q.rear=20,Q.front=15,则循环队列中的元素个数=(20-15+35)%35=5;Q.rear=40,Q.front=15,则循环队列中的元素个数=(40-15+35)%35=25;本题根据Q.rear=Q.front=15,maxsize=35,则循环队列中元素个数=(15-15+35)%35=0或35;(3)下列关于栈的叙述中,正确的是A) 栈底元素一定是最后入栈的元素B) 栈操作遵循先进后出的原则C) 栈顶元素一定是最先入栈的元素D) 以上三种说法都不对(3)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第63张幻灯片说明:栈元素入、退原则:先进后出(FILO)或后进先出(LIFO)。

全国2012年9月计算机等级考试二级C语言上机题库100套(第二部分50至100套)(二级C语言)

全国2012年9月计算机等级考试二级C语言上机题库100套(第二部分50至100套)(二级C语言)

第50套:给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。

例如,若N=3,有下列矩阵:1 2 34 5 67 8 9计算结果为1 0 06 5 010 14 9请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h>#define N 4/**********found**********/void fun(int (*t)___1___ )/* 宏为世纪教育 */{ int i, j;for(i=1; i<N; i++){ for(j=0; j<i; j++){/**********found**********/___2___ =t[i][j]+t[j][i];/**********found**********/___3___ =0;}}}main(){ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,1 0}, i, j;printf("\nThe original array:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%2d ",t[i][j]);printf("\n");}fun(t); printf("\nThe result is:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%2d ",t[i][j]);printf("\n");}}解题思路:第一处:形参t的定义,整数数组其宽度为N,所以应填:[N]。

全国计算机等级考试二级C++真题2012年9月

全国计算机等级考试二级C++真题2012年9月

全国计算机等级考试二级C++真题2012年9月(总分:100.00,做题时间:90分钟)一、选择题(每小题2分,共70分) (总题数:35,分数:70.00)1.下列链表种,其逻辑结构属于非线性结构的是(分数:2.00)A.循环链表B.双向链表C.带链的栈D.二叉链表√解析:2.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(分数:2.00)A.16B.20C.0或35 √D.15解析:3.下列关于栈的叙述中,正确的是(分数:2.00)A.栈顶元素一定是最先入栈的元素B.栈操作遵循先进后出的原则√C.栈底元素一定是最后入栈的元素D.以上三种说法都不对解析:4.在关系数据库中,用来表示实体间联系的是(分数:2.00)A.二维表√B.树状结构C.属性D.网状结构解析:5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是(分数:2.00)A.m:1联系B.1:m联系√C.1:1联系D.m:n联系解析:6.有两个关系R和S 如下R得到关系S的操作是(分数:2.00)A.自然连接B.选择√C.并D.投影7.数据字典(DD)所定义的对象都包含于(分数:2.00)A.程序流程图B.数据流图(DFD图)√C.方框图D.软件结构图解析:8.软件需求规格说明书的作用不包括(分数:2.00)A.软件可行性研究的依据√B.用户与开发人员对软件要做什么的共同理解C.软件验收的依据D.软件设计的依据解析:9.下面属于黑盒测试方法的是(分数:2.00)A.逻辑覆盖B.语句覆盖C.路径覆盖D.边界值分析√解析:10.下面不属于软件设计阶段任务的是(分数:2.00)A.数据库设计B.算法设计C.软件总体设计D.制定软件确认测试计划√解析:11.下列关于函数重载的叙述中,错误的是(分数:2.00)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同√D.重载函数的参数个数或参数类型必须有所不同解析:12.下列关于类成员对象构造函数调用顺序的叙述中,正确的是(分数:2.00)A.与它们在初始化列表中顺序相同B.与它们在类中声明的顺序相同√C.与析构函数的调用顺序相同D.顺序不确定解析:13.下列关于派生类的叙述中,错误的是(分数:2.00)A.派生类至少要有一个基类B.派生类中包括了从基类继承的成员C.一个派生类可以作为另一个派生类的基类D.基类成员被派生类继承以后访问权限保持不变√14.下列关于运算符重载的叙述中,正确的是(分数:2.00)A.通过运算符重载机制可以为C++语言扩充新的运算符B.运算符重载的作用是使已有的运算符作用于类的对象√C.重载运算符的操作数类型可以全部为基本类型D.所有运算符都可以重载解析:15.下列关于模板的叙述中,错误的是(分数:2.00)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义√D.类模板的实例是一个类对象解析:16.下列关于输入输出流的叙述中,正确的是(分数:2.00)A.一个文件流可以与一个数据文件相联系√B.cin是专门从键盘输入数据的输入流类C.流运算符<<用来从输入流中读取数据D.宽度设置的效果永久有效解析:17.下列选项中可以做C++标识符的是(分数:2.00)A._256 √B.fat/pigC.deleteD.5char解析:18.关键字unsigned不能修饰的类型是(分数:2.00)A.char √B.intC.floatD.long int解析:19.有如下程序: #include using namespace std; int main(){ char a; cin>>a; if(a='*') cout<<"***"<<<"###"<(分数:2.00)A.***B.### √C.***###D.无输出解析:20.下列对一维数组a的定义中,语法正确的是(分数:2.00)A.int a(10)B.int n=7,a[n];C.int n;cin>>n;int a[n];D.const int size=10;int a[size]; √解析:21.假设函数fun已经定义,其原型为”void fun(int a,int b=7,char *p=”**”);”,下列函数调用中错误的是(分数:2.00)A.fun(5)B.fun(5,8)C.fun(6,”##”)√D.fun(0,0.”==”)解析:22.已经函数print()没有返回值,如果在类中将之声明为常成员函数,正确的是(分数:2.00)A.void print()const; √B.const void print();C.void const print();D.void print(const);解析:23.已知基类Employees只有一个构造函数,其定义如下: Employee::Employee(int n):id(n){} Manager 是Employees的派生类,则下列对Manager的构造函数的定义中,正确的是(分数:2.00)A.Manager::Manager(int n):id(n){}B.Manager::Manager(int n){id=n;}C.Manager::Manager(int n):Employee(n){} √D.Manager::Manager(int n){Employee(n);}解析:24.已知将运算符“+”和“*”作为类Complete的成员函数重载,设c1和c2是类Complex的对象,则表达式c1+c2*c1等价于(分数:2.00)A.c1.operator*(c2.operator+(c1))B.c1.operator+(c2.operator*(c1)) √C.c1.operator*(c1.operator+(c2))D.c2.operator+(c1.operator*(c1))解析:25.下列类模板的定义中语法格式错误的是(分数:2.00)A.template class Buffer{/*…*/};B.template class Buffer{/*…*/};C.template class Buffer{/*…*/};D.template class Buffer{/*…*/};√解析:26.在C++中既可以用于文件输入又可以用于文件输出的流类是(分数:2.00)A.fstream √B.ifstreamC.ofstreamD.iostream解析:27.有如下类定义:class MyClass{ int b;char a;double c; public: MyClass():c(0.0),b(0),a(','){} }; 创建这个类的对象时,数据成员的初始化顺序是(分数:2.00)A.a,b,cB.c,b,a √C.b,a,cD.c,a,b解析:28.有如下类定义 class MyClass{ int x; public: MyClass():x(0),y(0){} int GetX(){return x;} void SetX(int xx){x==xx;} int y; }; 已知obj是类MyClass的对象,下列语句中违反类成员访问控制权限的是(分数:2.00)A.obj.x; √B.obj.y;C.obj.GetX();D.obj.SetX(0);解析:29.有如下类定义 class Test{ char a; const char b; public:Test(char c){a=c;b=c;} //第1行 void f(char a)const{this->a=a;} //第2行void g(char b){this->b=b;} //第3行char h()const{return a;} //第4行 }; 编译时没有错误的行是(分数:2.00)A.第1行B.第2行C.第3行√D.第4行解析:30.有如下程序:#include using namespace std; class A{ public: A(){cout<<'C';} }; class B:public A{ public: B(){cout<<'G';} ~B(){cout<<'T';} }; int main(){ B obj; return 0; } 运行这个程序的输出结果是(分数:2.00)A.GATCB.AGTC √C.GACTD.AGCT解析:31.有如下程序: #include using namespace std; class Base{ public; void fun(){cout<<'B';} }; class Derived:public Base{ public; void fun(){ cout<<'D';} }; int main(){ Derived d; d.fun(); return 0; } 若程序的输出结果是BD,则划线处缺失的部分是(分数:2.00)A.fun()B.Base.fun()C.Base::fun() √D.Base->fun()解析:32.有如下程序:#include using namespace std; class B{ public; virtual void f() {cout<<"B";} void g(){cout<<"B";} } class D;public B { public; void f(){cout<<"D";} void g(){coun<<"D";} } void h(B*p){p->f();p->g();} int main(){ D obj; h(&obj); return 0; } 运行这个程序的输出结果是:(分数:2.00)A.DDC.BDD.DB √解析:33.有如下程序: #include #include using namespace std; class MyString{ public; char str[80]; MyString(const char*s) {strcpy(str,s);} MyString&operator+=(MyString a){ strcat(str,a.str); return*this; } }; ostream&operator<<(ostream&s,const MyString&z){return s << z.str} intmain(){ MyString x("abc"),y("cde"); cout<<(分数:2.00)A.abcB.cdeC.abcdeD.abccde √解析:34.有如下程序: #include #include using namespace std; intmain(){ cout<<setfill('#')<<setw(4)<<"OK"<<123<(分数:2.00)A.##OK123 √B.##OK#123C.OK##123D.OK##123#解析:35.有如下语句序列: ifstream infile("DATA.DAT"); if(infile.good())cout<<"A"; else{ cout<<"B"; ofstream outfile("DATA.DAT"); if(outfile.fail())cout<<"C";else cout<<"D"; } 若执行这个语句序列显示的是BD,则说明文件DATA.DAT(分数:2.00)A.以读方式打开成功B.以读方式打开失败,但以写方式打开成功C.以读方式打开失败,以写方式打开也失败√D.以读方式打开成功,以写方式打开也成功解析:二、填空题(每空2分,共30分) (总题数:15,分数:30.00)36.一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【1】。

全国计算机等级考试二级C语言机试真题2012年09月

全国计算机等级考试二级C语言机试真题2012年09月

全国计算机等级考试二级C语言机试真题2012年09月(总分:100.00,做题时间:90分钟)一、程序填空题(总题数:1,分数:30.00)1.下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。

函数fun的功能是:把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>#include <stdlib.h>#define N 8typedef struct listint data;struct 1ist * next;SLIST;void fun(SLIST * h, int x)SLIST * P, * q, * s;s=(SLIST* )malloc(sizeof(SLIST));/********** found********** /s->data=______;q=h;p=h->next;while(p! =NULL && x>p->data)/********** found********** /q=______;p=p->next;s->next=p;/********** found********** /q->next=______;SLIST * creatlist(int * a)SLIST * h, * p, * q; int i;h=p=(SLIST * )malloc(sizeof(SLIST));for(i=0; i<N; i ++)q=(SLIST * )malloc(sizeof(SLIST));q->data=a[i]; p->next=q; p=q;p->next=0;return h;void outlist(SLIST * h)SLIST * p;p=h->next;if(p==NULL)printf("/nThe list is NULL! /n");elseprintf("/nHead");do printf("->% d", p->data);p=p->next;while(p!=NULL);printf("->End/n");main()SLIST * head; int x;int a[N]=11, 12, 15, 18, 19, 22, 25, 29;head=creatlist(a);printf("/nThe list before inserting: /n");outlist(head);printf("/nEnter a number: ");scanf("%d", &x);fun(head, x);printf("/nThe list after inserting: /n");outlist(head);(分数:30.00)填空项1:__________________ (正确答案:(1)x (2)p (3)s)解析:[考点] 本题考查:链表的基本操作。

全国计算机等级考试二级C++真题2012年9月

全国计算机等级考试二级C++真题2012年9月

mhtml:file://C:\Documents and Settings\ll\My Documents\新建文件夹 (4)\全国计算...
2014-5-10
维普在线考试系统
Page 4 of 13
该题您未回答:х 该问题分值: 2
答案:A
17. 下列选项中可以做C++标识符的是
j A _256 k l m n j C delete k l m n j B fat/pig k l m n j D 5char k l m n
该题您未回答:х 该问题分值: 2
答案:B
4. 在关系数据库中,用来表示实体间联系的是
j A 二维表 k l m n j C 属性 k l m n j B 树状结构 k l m n j D 网状结构 k l m n
该题您未回答:х 该问题分值: 2
答案:A
5. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则 实体部门和职员间的联系是
2014-5-10
维普在线考试系统
Page 2 of 13
6. 有两个关系R和S 如下:
则由关系R得到关系S的操作是
n A 自然连接 j k l m nC 并 j k l m n B 选择 j k l m n D 投影 j k l m
该题您未回答:х 该问题分值: 2
答案:B
7. 数据字典(DD)所定义的对象都包含于
该题您未回答:х 该问题分值: 2
答案:C
24. 已知将运算符“+”和“*”作为类Complete的成员函数重载,设c1和c2是类Complex的 对象,则表达式c1+c2*c1等价于
n A c1.operator*(c2.operator+(c1)) j k l m n B c1.operator+(c2.operator*(c1)) j k l m j C c1.operator*(c1.operator+(c2)) k l m n j D c2.operator+(c1.operator*(c1)) k l m n

2012年计算机二级C语言单项选择题及答案解析精选

2012年计算机二级C语言单项选择题及答案解析精选

【1.1】以下不正确的C语言标识符是____。

A) intB) a_1_2C) ab1exeD) _x【1.2】以下是正确的C语言标识符是____。

A) #defineB) _123C) %dD) \n【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。

A) print B) i\am C) Pxq D) str_l_3d one_half My->book Cpp••• oodbs tart$it line#pow••• aBc 3pai His.age while【1.4】下面各选项组中,均是C语言关键字的组是。

A) auto,enum,includeB) switch,typedef,continueC) signed,union,scanfD) if,struct,type【1.5】下列不属于C语言关键字的是。

A) defaultB) registerC) enumD) external【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。

A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置【1.7】下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义【1.8】在C语言中,错误的int类型的常数是。

A) 32768B) 0C) 037D) 0xAF【1.9】执行语句 printf("%x",-1);屏幕显示____。

A) -1B) 1C) -ffffD) ffff【1.10】已知 long i=32768;执行语句printf("%d",i);屏幕显示____。

A) -1B) -32768C) 1D) 32768【1.11】已知 long i=65539;执行语句printf("%d",i);屏幕显示____。

2012年9月全国计算机2级考试(C语言程序设计)笔试模拟试题题附答案

2012年9月全国计算机2级考试(C语言程序设计)笔试模拟试题题附答案

2012年9月全国计算机2级考试(C语言程序设计)笔试模拟试题题附答案2012 9全国计算机2级考试c语言程序设计笔试模拟题(1)下列叙述中正确的是()A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是()A)栈 B)树 C)队列 D)二叉树(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是()A)10 B)8 C)6 D)4 (4)下列排序方法中,最坏情况下比较次数最少的是()A)冒泡排序 B)简单选择排序 C)直接插入排序D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是()A)编译程序 B)操作系统 C)教务管理系统D)汇编程序(6)下面叙述中错误的是()A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。

下列叙述中正确的是()A)提高耦合性降低内聚性有利他哦高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元索间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是()A)数据库设计 B)数据库系统设计 C)数据库维护D)数据库管理员培训(9)有两个关系R, S如下:由关系R通过运算得到关系S,则所使用的运算为() A)选择 B)投影 C)插入 D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为()A)scarf(“%f%1”,x,y);B)scarf(“%f%f”,&x,&y);C)scarf(“%lf%1e”,px,py);D)scarf(“%lf%lf”,x,y);(17)以下是if语句的基本形式:()if〔表达式)语句其中“表达式”A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式(18)有以下程序#include <stdio.h>main(){int x;scarf(“&d”,&x);i f (x<=3);elseif (x!=10) printf(“ &d\n”。

2012年国家二级C语言考试所有上机真题答案

2012年国家二级C语言考试所有上机真题答案

11、下列给定程序中,函数fun的功能是:计算如下公式直到,并且把计算结果作为函数值返回。

例如,若形参e的值为1e-3,则函数返回值为0.551690。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!【参考答案】(1)3.0或(double)3(2)>(3) (t+1)2、下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。

和值通过函数值返回。

例如,若n=5,则应输出8.391667。

请改正程序中的错误,使其得出正确的结果。

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!【参考答案】(1)double fun(int n)(2)s=s+(double)a/b;3、请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】int fun (int a[][M]){int i,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];return max;}21、下列给定程序中,函数fun的功能是:计算如下公式前n项的和并作为函数值返回。

例如,当形参n的值为10时,函数返回值为9.612558。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!【参考答案】(1) 0(2) n(3) (t*t)2、下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。

2012年9月全国计算机等级考试二级C语言上机题库(完整版)

2012年9月全国计算机等级考试二级C语言上机题库(完整版)

第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。

函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。

/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。

函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。

/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n 返回这些数的个数。

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

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

2012年9月全国计算机等级考试二级C语言笔试真题与答案2012年9月全国计算机 (1)下列链表种,其逻辑结构属于非线性结构的是 A )循环链表 B )双向链表 C )带链的栈 D )二叉链表 (2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为 A )16 B )20 C )0或35 D )15 (3)下列关于栈的叙述中,正确的是 A )栈顶元素一定是最先入栈的元素 B )栈操作遵循先进后出的原则 C )栈底元素一定是最后入栈的元素 D )以上三种说法都不对 (4)在关系数据库中,用来表示实体间联系的是 A )二维表 B )树状结构 C )属性 D )网状结构 (5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是 A )m:1联系 B )1:m 联系 C )1:1联系 D )m:n 联系 (6) 有两个关系R 和S 如下: R S A B C A B C a 1 2 c 3 1 b 2 1 c 3 1 则由关系R 得到关系S 的操作是 A )自然连接 B )选择 C )并 D )投影 (7)数据字典(DD )所定义的对象都包含于 A )程序流程图 B )数据流图(DFD 图) C )方框图 D )软件结构图(8)软件需求规格说明书的作用不包括 A )软件可行性研究的依据 B )用户与开发人员对软件要做什么的共同理解 C )软件验收的依据 D )软件设计的依据 (9)下面属于黑盒测试方法的是 A 逻辑覆盖 B )语句覆盖 C )路径覆盖 D )边界值分析 (10)下面不属于软件设计阶段任务的是 A )数据库设计 B )算法设计 C )软件总体设计 D )制定软件确认测试计划 (11)以下叙述中正确的是 A 在C 语言程序中,main 函数必须放在其他函数的最前面 B )每个后缀为.C 的C 语言源程序都可以单独进行编译 C 在C 语言程序中,只有main 函数才可单独进行编译 D 每个后缀为.C 地点C 语言源程序都应该包含一个main 函数 (12)C 语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是 A )预定义标识符(如库函数中的函数名)可用作用标识符,但失去原有含义 )用户标识符可以由字母和数 )关键字可用作用户标识符, 13)以下选项中表示一个合(说明:符号 表示 )9 9 9 B )0Xab C ))2.7e 14C 语言主要是借助以下哪个功能来实现程序模块化 A )定义函数 B )定义常量和外部变量 C )三种基本结构语句 D )丰富的数据类型 (15)以下叙述中错误的是A )非零的数值类型常量有正直和负值的区分B )常量是在程序运行过程中值不能被改变的量C )定义符号常量必须用类型名来设定常量的类型D )用符号名表示的常量叫符号常量 (16)若有定义和语句:int a,b; scanf(“%d,%d ”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a 、5赋给变量b 的是 A )3,5 B )3,5,4 C )3 ,5 D )3,5 (17)C 语言中char 类型数据占字节数为 A )3 B )4 C )1 D )2 (18)下列关系表达式中,结果为“假”的是 A )(3+4)>6 B )(3!=4)>2 C )3<=4||3 D )(3<4)==1 (20)有以下程序 #include<stdio.h> main() { int a=-2,b=0; while(a++&&++b); printf("%d,%d\n",a,b);} 程序运行后的输出结果是 A )1,3 B )0,2 C )0,3 D )1,2 (21)设有定义:int x=0,*p; ,立刻执行以下语句,正确的语句是 A )p=x; B )*p=x; C )p=NULL; D )*p=NULL; (22)下列叙述中正确的是 A )可以用关系运算符比较字符串的大小 B )空字符串不占用内存,其内存空间大小是0 C )两个连续的单引号是合法的字符常量 D )两个连续的双引号是合法的字符串常量 (23)有以下程序 #include <stdio.h> main() { char a='H'; a=(a>='A'&&a<='Z')?(a-'A'+'a'):a; printf("%c\n",a);} 程序运行后的输出结果是A )AB )aC )HD )h (24)有以下程序 #include <stdio.h> int f(int x); main() { int a,b=0; for(a=0;a<3;a++) {b=b+f(a); putchar('A'+b);}} int f(int x) {return x*x+1;} 程序运行后的输出结果是 A )ABE B )BDI C )BCF D )BCD (25)设有定义:int x[2][3];,则以下关于二维数组x 的叙述错误的是 A )x[0]可看作是由3个整型元素组成的一维数组 B )x[0]和x[1]是数组名,分别代表不同的地址常量 C )数组x 包含6个元素 D )可以用语句x[0]=0;为数组所有元素赋初值0 (26)设变量p 是指针变量,语句p=NULL;是给指针变量赋NULL 值,它等价于 A )p= ""; B )p= '0'; C )p=0; D )p= ''; (27)有以下程序 #include <stdio.h> main() {int a[]={10,20,30,40},*p=a,i; for(i=0;i<=3;i++){a[i]=*p;p++;} printf("%d\n",a[2]);} 程序运行后的输出结果是 A )30 B )40 C )10 D )20 (28)有以下程序 #include <stdio.h> #define N 3 void fun(int a[][N],int b[]) { int i,j; for(i=0;i<N;i++) { b[i]=a[i][0]; for(j=i;j<N;j++) if(b[i]<a[i][j]) b[i]=a[i][j];}} main()A )42B )0C )1D )41 (36)有以下程序 void f(struct STU a[]) { struct STU b={"Zhao",'m',85,90}; a[1]=b;} main() { struct STU c[2]={{"Qian",'f',95,92},{"Sun ",'m',98,99}}; f(c); printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].score[1]); printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[0],c[1].score[1]);} 程序运行后的输出结果是 A )Zhao,m,85,90,Sun,m,98,99 B )Zhao,m,85,90,Qian,f,95,92 C )Qian,f,95,92,Sun,m,98,99 D )Qian,f,95,92,Zhao,m,85,90 (37)以下叙述中错误的是 A )可以用typedef 说明的新类型名来定义变量 B )typedef 说明的新类型名必须使用大写字母,否则会出编译错误 C )用typedef 可以为基本数据类型说明一个新名称 D )用typedef 说明新类型的作用是用一个新的标识符来代表已存在的类型名 (38)以下叙述中错误的是 A )函数的返回值类型不能是结构体类型,只能是简单类型 B )函数可以返回指向结构体变量的指针 C )可以通过指向结构体变量的指针访问所指结构体变量的任何成员 D )只要类型相同,结构体变量之间可以整体赋值 (39)若有定义语句int b=2;则表达式(b<<2)/(3||b)的值是 A )4 B )8 C )0 D )2 (40)有以下程序 #include <stdio.h> main() { FILE *fp;int i,a[6]={1,2,3,4,5,6}; fp=fopen("d2.dat","w+"); for(i=0;i<6;i++) fprintf(fp,"%d\n",a[i]); rewind(fp); for(i=0;i<6;i++) fscanf(fp,"%d",&a[5-i]); fclose(fp); for(i=0;i<6;i++) printf("%d ,",a[i]);} 程序运行后的输出结果是 A )4,5,6,1,2,3, B )1,2,3,3,2,1, C )1,2,3,4,5,6, D )6,5,4,3,2,1, 二、填空题(每空2分,共30分) (1)一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【1】 。

2012年9月计算机二级考试C语言真题-中大网校

2012年9月计算机二级考试C语言真题-中大网校

2012年9月计算机二级考试C语言真题总分:100分及格:60分考试时间:90分共70分(1)下列链表中,其逻辑结构属于非线性结构的是_____。

A. 双向链表B. 带链的栈C. 二叉链表D. 循环链表(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。

现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A.20B.0或35C.15D.16(3)列关于栈的叙述中,正确的是A.栈顶元素一定是最先入栈的元素 B.栈操作遵循先进后出的原则C.栈底元素一定是最后入栈的元素 D.以上三种说法都不对(4)在关系数据库中,用来表示实体间联系的是A.二维表 B.树状结构 C.属性D.网状结构(5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是A.1:m联系B.m:n联系 C.1:1联系D.m:1联系(6)有两个关系R和S 如下:R<table border="1" bordercolor="#000000" cellpadding="2" cellspacing="0" width="100"> <tbody> <tr> <td> A </td> <td> B </td> <td>C </td> </tr> <tr> <td> a</td> <td> 1 </td> <td>2 </td> </tr> <tr> <td> b</td> <td> 2 </td> <td>1 </td> </tr> <tr> <td> c</td> <td> 3 </td> <td>1 </td> </tr> </tbody></table>S<table border="1" bordercolor="#000000" cellpadding="2" cellspacing="0" width="100"> <tbody> <tr> <td width="24"> A </td> <td width="29">B </td> <td width="30"> C</td> </tr> <tr> <td> c </td> <td> 3 </td> <td> 1</td> </tr> </tbody></table>则由关系R得到关系S的操作是A.自然连接 B.选择 C.并 D.投影(7)数据字典(DD)所定义的对象都包含于A. 软件结构图B. 方框图C. 数据流图(DFD图)D. 程序流程图(8)软件需求规格说明书的作用不包括A.软件可行性研究的依据 B.用户与开发人员对软件要做什么的共同理解C.软件验收的依据 D.软件设计的依据(9)下面属于黑盒测试方法的是 A.逻辑覆盖 B.语句覆盖 C.路径覆盖D.边界值分析(10)下面不属于软件设计阶段任务的是A. 制定软件确认测试计划B. 数据库设计C. 软件总体设计D. 算法设计(11)以下叙述正确的是()。

全国计算机等级考试二级VISUAL+BASIC真题2012年9月

全国计算机等级考试二级VISUAL+BASIC真题2012年9月

全国计算机等级考试二级VISUAL BASIC真题2012年9月(总分:100.00,做题时间:90分钟)一、选择题(每小题2分,共70分) (总题数:35,分数:70.00)1.下列链表中,其逻辑结构属于非线性结构的是(分数:2.00)A.二叉链表√B.循环链表C.双向链表D.带链的栈解析: [解析] 循环链表、双向链表、带链的栈都是线性结构,二叉链表是非线性结构二叉树的链式存储结构,只有它是非线性结构。

2.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。

现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(分数:2.00)A.15B.16C.20D.0或35 √解析:[解析] 在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置。

因此,从队头指针front指向的后一个位置到队尾指针rear指向的位置之间所有的元素均为队列中的元素。

循环队列的初始状态为空,即rear=front=m,每进行一次人队运算,队尾指针就进一。

每进行一次出运运算,队头指针就进一。

此题中rear=front=15,可能出现的情况是入队的元素全部出队,此时队列中元素个数为0;也可能是执行人队出队的次数不一样,最终状态是队列为满的状态,此时队列中元素个数为35。

3.下列关于栈的叙述中,正确的是(分数:2.00)A.栈底元素一定是最后入栈的元素B.栈顶元素一定是最先入栈的元素C.栈操作遵循先进后出的原则√D.以上三种说法都不对解析:[解析] 栈(Stack)是限定在一端进行插入与删除的线性表。

在栈中,允许插入与删除的这一端称为栈顶,而不允许插入与删除的另一端称为栈底。

栈是按照“先进后出”或“后进先出”的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表4.在关系数据库中,用来表示实体间联系的是(分数:2.00)A.属性B.二维表√C.网状结构D.树状结构解析: [解析] 在关系数据库中,实体与实体间的联系可以用关系(二维表)的形式来表示。

2012年9月全国计算机等级考试二级C语言笔试试题和答案(含公共基础题)全解

2012年9月全国计算机等级考试二级C语言笔试试题和答案(含公共基础题)全解

29 1)main() { char a[10]="abcde",b[]="fgh"; int i=0; strcpy(a+1,b+2); printf("%s",a); } 请详细解释一下”strcpy(a+1,b+2)”这句语句 2)main() { char s[][10]={"a","good",world"}; strcat(s[0],s[1]); printf("%s",s[0]);}请详细解释一下”strcat(s[0],s[1])”这句语句strcpy()是字符串复制函数。

连字符串的结束标志‘\0’一同复制。

对于strcpy(a+1,b+2);中的b+2则是数组里的“h\0”的首地址。

a+1则是数组里的“bcde”的首地址。

即此函数的意义是:把“h\0”复制到“bcde”的位置。

字符串遇到‘\0’结束即结果是:ah。

对于strcat(s[0],s[1]);中的二为数组可以看成是多个一维数组组成的。

所以s[0]代表的是“a”的首地址,s[1]代表的是“good”的首地址。

这是字符串连接函数。

即把good 放到了a的后面。

结果是:agood。

二级C语言程序设计答案及详解一、选择题(11)B)【解析】每一个C 语言的文件或函数都可以单独编译,但只有main 函数的才可以执行。

(12)A)【解析】预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin 等和编译预处理命令名(如define 和include)。

预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。

(13)B)【解析】0xab 是十六进制表示的常量。

(14)A)【解析】C语言用函数实现软件的模块化设计。

(15)C)【解析】C语言中,常常用一个标识符来代表一个常量,称为符号常量。

2012年9月全国计算机等级考试二级C语言笔试试题和答案-------2013

2012年9月全国计算机等级考试二级C语言笔试试题和答案-------2013

29 1)main(){char a[10]="abcde",b[]="fgh";int i=0;strcpy(a+1,b+2);printf("%s",a);}请详细解释一下”strcpy(a+1,b+2)”这句语句2)main(){char s[][10]={"a","good",world"};strcat(s[0],s[1]);printf("%s",s[0]);}请详细解释一下”strcat(s[0],s[1])”这句语句strcpy()是字符串复制函数。

连字符串的结束标志…\0‟一同复制。

对于strcpy(a+1,b+2);中的b+2则是数组里的“h\0”的首地址。

a+1则是数组里的“bcde”的首地址。

即此函数的意义是:把“h\0”复制到“bcde”的位置。

字符串遇到…\0‟结束即结果是:ah。

对于strcat(s[0],s[1]);中的二为数组可以看成是多个一维数组组成的。

所以s[0]代表的是“a”的首地址,s[1]代表的是“good”的首地址。

这是字符串连接函数。

即把good 放到了a的后面。

结果是:agood。

二级C语言程序设计答案及详解一、选择题(11)B)【解析】每一个C 语言的文件或函数都可以单独编译,但只有main 函数的才可以执行。

(12)A)【解析】预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin 等和编译预处理命令名(如define 和include)。

预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。

(13)B)【解析】0xab 是十六进制表示的常量。

(14)A)【解析】C语言用函数实现软件的模块化设计。

(15)C)【解析】C语言中,常常用一个标识符来代表一个常量,称为符号常量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012年9月全国计算机(1)C下列链表种,其逻辑结构属于非线性结构的是A)循环链表 B)双向链表 C)带链的栈 D)二叉链表(2)C设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A)16 B)20 C)0或35 D)15(3)B下列关于栈的叙述中,正确的是A)栈顶元素一定是最先入栈的元素 B)栈操作遵循先进后出的原则C)栈底元素一定是最后入栈的元素 D)以上三种说法都不对(4)B在关系数据库中,用来表示实体间联系的是A)二维表 B)树状结构 C)属性 D)网状结构(5)A公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是A)m:1联系 B)1:m联系 C)1:1联系 D)m:n联系A)自然连接 B)选择 C)并 D)投影(7)B数据字典(DD)所定义的对象都包含于A)程序流程图 B)数据流图(DFD图) C)方框图 D)软件结构图(8)A软件需求规格说明书的作用不包括A)软件可行性研究的依据 B)用户与开发人员对软件要做什么的共同理解C)软件验收的依据 D)软件设计的依据(9)D下面属于黑盒测试方法的是A逻辑覆盖 B)语句覆盖 C)路径覆盖 D)边界值分析(10)D下面不属于软件设计阶段任务的是A)数据库设计 B)算法设计C)软件总体设计 D)制定软件确认测试计划(11)B以下叙述中正确的是A在C语言程序中,main函数必须放在其他函数的最前面B)每个后缀为.C的C语言源程序都可以单独进行编译C在C语言程序中,只有main函数才可单独进行编译D每个后缀为.C地点C语言源程序都应该包含一个main 函数(12)AC语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A)预定义标识符(如库函数中的函数名)可用作用标识符,但失去原有含义B)用户标识符可以由字母和数字任意顺序组成在标识符中大写字母和小写字母被认为是相同的字符D)关键字可用作用户标识符,但失去原有含义(13)B以下选项中表示一个合法的常量是(说明:符号表示空格)A) B)0Xab C)123E0.2 D)2.7e(14)A C语言主要是借助以下哪个功能来实现程序模块化A)定义函数 B)定义常量和外部变量C)三种基本结构语句 D)丰富的数据类型(15)C以下叙述中错误的是A)非零的数值类型常量有正直和负值的区分B)常量是在程序运行过程中值不能被改变的量C)定义符号常量必须用类型名来设定常量的类型D)用符号名表示的常量叫符号常量(16)C若有定义和语句:int a,b; scanf(“%d,%d”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是A)3,5 B)3,5,4 C)3 ,5 D)3,5(17)CC语言中char类型数据占字节数为A)3 B)4 C)1 D)2(18)B下列关系表达式中,结果为“假”的是A)(3+4)>6 B)(3!=4)>2 C)3<=4||3 D)(3<4)==1 (19)D若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是A)switch(a+9) B)switch a*bC)switch(a+b) D)switch(a*a+b*b)(20)D有以下程序#include<stdio.h>main(){ int a=-2,b=0;while(a++&&++b);printf("%d,%d\n",a,b);}程序运行后的输出结果是A)1,3 B)0,2 C)0,3 D)1,2(21)B设有定义:int x=0,*p; ,立刻执行以下语句,正确的语句是A)p=x; B)*p=x; C)p=NULL; D)*p=NULL; (22)D下列叙述中正确的是A)可以用关系运算符比较字符串的大小B)空字符串不占用内存,其内存空间大小是0C)两个连续的单引号是合法的字符常量D)两个连续的双引号是合法的字符串常量(23)D有以下程序#include <stdio.h>main(){ char a='H';a=(a>='A'&&a<='Z')?(a-'A'+'a'):a;printf("%c\n",a);}程序运行后的输出结果是A)A B)a C)H D)h(24)B有以下程序#include <stdio.h>int f(int x);main(){ int a,b=0;for(a=0;a<3;a++){b=b+f(a); putchar('A'+b);}}int f(int x){return x*x+1;}程序运行后的输出结果是A)ABE B)BDI C)BCF D)BCD (25)D设有定义:int x[2][3];,则以下关于二维数组x 的叙述错误的是A)x[0]可看作是由3个整型元素组成的一维数组B)x[0]和x[1]是数组名,分别代表不同的地址常量C)数组x包含6个元素D)可以用语句x[0]=0;为数组所有元素赋初值0 (26)C设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于A)p= ""; B)p= '0'; C)p=0; D)p= ''; (27)A有以下程序#include <stdio.h>main(){int a[]={10,20,30,40},*p=a,i;for(i=0;i<=3;i++){a[i]=*p;p++;}printf("%d\n",a[2]);}程序运行后的输出结果是A)30 B)40 C)10 D)20(28)B有以下程序#include <stdio.h>#define N 3void fun(int a[][N],int b[]){ int i,j;for(i=0;i<N;i++){ b[i]=a[i][0];for(j=i;j<N;j++)if(b[i]<a[i][j]) b[i]=a[i][j];}}main(){ int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;fun(x,y);for(i=0;i<N;i++) printf("%d,",y[i]);printf("\n");}程序运行后的输出结果是A)2,4,8, B)3,6,9, C)3,5,7, D)1,3,5, (29)C有以下程序(strcpy为字符串复制函数,strcat 为字符串连接函数)#include <stdio.h>#include <string.h>main(){ char a[10]="abc",b[10]="012",c[10]="xyz";strcpy(a+1,b+2);puts(strcat(a,c+1));} 程序运行后的输出结果是A)a12cyz B)12yz C)a2yz D)bc2yz (30)A以下选项中,合法的是A)char str3[]={'d', 'e', 'b', 'u', 'g', '\0', };B)char str4; str4="hello world";C)char name[10]; name="china";D)char str[5]= "pass",str2[6]; str2=str1;(31)C有以下程序#include <stdio.h>main(){ char *s="12134"; int k=0,a=0;while(s[k+1]!='\0'){ k++;if(k%2==0){a=a+(s[k]-'0'+1);continue;}a=a+(s[k]-'0'); }printf("k=%d a=%d\n",k,a);}程序运行后的输出结果是A)k=6 a=11 B)k=3 a=14 C)k=3 a=12 D)k=5 a=15(32)A有以下程序#include <stdio.h>main(){ char a[5][10]={"one","two","three","four","five"};int i,j;char t;for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(a[i][0]>a[j][0]){t=a[i][0]; a[i][0]=a[j][0]; a[j][0]=t;}puts(a[1]);}程序运行后的输出结果是A)fwo B)fix C)two D)owo(33)B有以下程序#include <stdio.h>int a=1,b=2;void fun1(int a,int b){printf("%d %d",a,b);}void fun2(){a=3;b=4;}mian(){ fun1(5,6);fun2();printf("%d %d\n",a,b);}程序运行后的输出结果是A)1 2 5 6 B)5 6 3 4 C)5 6 1 2 D)3 4 5 6 (34)A有以下程序#include <stdio.h>void func(int n){ static int num=1;num=num+n; printf("%d",num)}main(){func(3); func(4); printf("\n");}程序运行后的输出结果是A)4 8 B)3 4 C)3 5 D)4 5(35)D有以下程序#include <stdio.h>#include <dtdio.h>void fun(int *p1,int *p2,int *s){ s=(int*)malloc(sizeof(int));*s=*p1+*p2;free(s);}main(){ int a=1,b=40,*q=&a;fun(&a,&b,q);printf("%d\n",*q);}程序运行后的输出结果A)42 B)0 C)1 D)41(36)D有以下程序void f(struct STU a[]){ struct STU b={"Zhao",'m',85,90};a[1]=b;}main(){ struct STU c[2]={{"Qian",'f',95,92},{"Sun",'m',98,99}}; f(c);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0 ].score[1]);printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[0],c[ 1].score[1]);}程序运行后的输出结果是A)Zhao,m,85,90,Sun,m,98,99B)Zhao,m,85,90,Qian,f,95,92C)Qian,f,95,92,Sun,m,98,99D)Qian,f,95,92,Zhao,m,85,90(37)B以下叙述中错误的是A)可以用typedef说明的新类型名来定义变量B)typedef说明的新类型名必须使用大写字母,否则会出编译错误C)用typedef可以为基本数据类型说明一个新名称D)用typedef说明新类型的作用是用一个新的标识符来代表已存在的类型名(38)A以下叙述中错误的是A)函数的返回值类型不能是结构体类型,只能是简单类型B)函数可以返回指向结构体变量的指针C)可以通过指向结构体变量的指针访问所指结构体变量的任何成员D)只要类型相同,结构体变量之间可以整体赋值(39)B若有定义语句int b=2;则表达式(b<<2)/(3||b)的值是A)4 B)8 C)0 D)2(40)D有以下程序#include <stdio.h>main(){ FILE *fp;int i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w+");for(i=0;i<6;i++) fprintf(fp,"%d\n",a[i]); rewind(fp);for(i=0;i<6;i++) fscanf(fp,"%d",&a[5-i]);fclose(fp);for(i=0;i<6;i++) printf("%d,",a[i]);}程序运行后的输出结果是A)4,5,6,1,2,3, B)1,2,3,3,2,1, C)1,2,3,4,5,6, D)6,5,4,3,2,1,二、填空题(每空2分,共30分)(1)一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【6】。

相关文档
最新文档