2010年3月全国计算机等级考试二级C语言笔试试卷及参考答案
全国计算机等级考试二级C语言笔试试题及答案
老当益壮,宁移白首之心;穷且益坚,不坠青云之志。——唐·王勃
D) 4 (31) 有如下类定义:
class XX( int xx; public: XX(): xx(0) {cout<<' A';} XX( int n):xx ( n) {tout<<' B';} }; Class YY:public XX( Int yy; public: YY(): yy ( 0) (cout+yy;} YY ( int n ): XX (n+1 ), yy(n) (cout<<yy;} YY ( int m, int n):XX (m), yy (n) (cout<<yy;} }; 下列选项中,输出结果为 A0 的语句是 A) YY y1 (0,0); B) YY y2(1); C) YYy3(0); D) YYy4; (32) 有如下程序: #include<iostream> Using namespace std; class A( public: virtual void f () (cout+1;} void g () (cout<<2;} }; class B:public A( public: virtual void f () (cout<<3;} void g()(ecut<<4;} }; void show (A &a)(a.f();a.g( ) ; } int main()( B b; show(b); return 0; } 运行时的输出结果是 A) 12 B) 34 C) 14 D) 32 (33) 有如下程序: #include<iostream> using namespace std; class Pair( int m; int n; public: Pair ( int i, int j ): m(i), n(j) (} boot operator > ( pair p ) const;//须在类体外给出定义 ); int main () { Pair Al(3,4),p2(4,3); p3(4,5); Cout<< (pl>p2) << (P2>P1) << (p2>p3) << (p3>p2); return 0; } 运算符函数。operator〉的功能是比较两个 Pair 对象的大小,当左边对象大时,返回 true,否则 返 回 false。比较规则是首先比较两对象的 m 成员,m 大者为大;当 m 相等时比较 n, n 大者为大。程序输 出 0101, 下列对运算符重载函数的正确定义是 A ) bool Pair::operator> ( Pair p ) const {if (m!=p.m) return m>p.m; return n>p.n;}
全国计算机等级考试二级C笔试试卷(含参考答案)
全国计算机等级考试二级C笔试试卷(含参考答案)以下各题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)PDL(过程设计语言) B)PAD图 C)N-S图 D)DFD图(7)以下表达中正确的选项是A)软件交付使用后还需要进展维护B)软件一旦交付使用就不需要再进展维护C)软件交付使用后其生命周期就完毕D)软件维护是指修复程序中被破坏的指令(8)数据库设计的根本目标是要解决A)数据共享问题 B)数据平安问题C)大量数据存储问题 D)简化数据维护(9)设有如下关系表:R S TA B C A B C A B C1 123 1 3 1 1 22 23 2 2 33 1 3那么以下操作中正确的选项是A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S(10)数据库系统的核心是A)数据模型 B)数据库管理系统 C)数据库 D)数据库管理员(11)以下表达中错误的选项是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(12)以下表达中错误的选项是A)C语句必须以分号完毕B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(13)以下表达中正确的选项是A)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码(14)以下关于函数的表达中正确的选项是A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数(15)假设有语句:char *line[5];,以下表达中正确的选项是A)定义line是一个数组,每个数组元素是一个基类型为char 的指针变量B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针(16)有以下程序段typedef struct NODE{ int num; struct NODE *next;} OLD;以下表达中正确的选项是A)以上的说明形式非法 B)NODE是一个构造体类型C)OLD是一个构造体类型 D)OLD是一个构造体变量(17)以下表达中错误的选项是A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句 FILE fp; 定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据(18)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1(19)以下不能正确计算代数式值的C语言表达式是A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2)(20)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;(21)以下程序的功能是:给r输入数据后计算半径为r的圆面积s。
2010年计算机等级考试二级C语言上机习题汇总
2010年计算机等级考试二级C语言上机习题汇总一、改错题【分析】:改错题的错误一般可分为两类,一类是语法错误,这类错误可通过调试程序改正,较容易;另一类是逻辑错误,这类错误程序能运行,但结果不正确,这类错误相对较难,修改前必须要看懂和理解程序。
#include"stdio.h"#define n 4 #define m 3 /*语法错,#define m 3需另起一行*/int a[n][m],s[m];p(int j)/*此函数的功能为:找出a数组中第j列的最小元素的值及行号,函数成功运行后,i中即为j列的最小元素的行号,s[j]中即为j列的最小元素的值*/{intk,i,x;x=a[0][j];i=0; /*逻辑错,从函数的功能可知,a[0][j]也应赋值给s[j],所以x=a[0][j]应改为s[j]=x=a[0][j]*/for(k=1;k<N;K++)< p>if(a[k][j]<X)< p>{i=k;s[j]=x=a[k][j];}return i;}main(){int index[m],i,j,k;for(i=0;i<N;I++)< p>for(j=0;j<M;J++)< p>scanf("%d",a[i][j]);/*语法错,但编译时不会报错,scanf语句的一般形式为scanf(格式控制,地址表列),所以a[i][j]应改为&a[i][j])*/for(j=0,j<M;J++)< p>printf("a[%d,%d]=%d\n",index[j],j,s[j]);}i=s[1];k=0; /*逻辑错,数组s中存放的是a数组中每一列的最小值,比较时应从数组的第0个元素开始,而下面的for循环是从第1个元素开始的,所以i=s[1]应改为i=s[0]*/for(j=1;j<>if(s[j]<I)< p>{i=s[j];k=j;}printf("min=a[%d,%d]=%d",index[k],k,i); }二、编程题【分析】:本题的主要功能是建立一个3行8列的二维数组,并给其元素赋值,其中第1、2行的值可通过递推公式xi+1=(25*xi+357)%1024得到,第三行的值取前两行同列元素的最大公约数,所以编程时可用一个函数来实现求公约数的算法。
全国计算机二级《C语言》考试题库与答案
全国计算机二级《C语言》考试题库与答案全国计算机二级《C语言》考试题库与答案在学习、工作中,我们都离不开试题,借助试题可以检验考试者是否已经具备获得某种资格的基本能力。
什么样的试题才能有效帮助到我们呢?以下是店铺为大家收集的全国计算机二级《C语言》考试题库与答案,欢迎大家分享。
全国计算机二级《C语言》考试题库与答案篇1(1)下列关于栈叙述正确的是( )。
A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除(2)下列叙述中正确的是( )。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。
A.3B.4C.6D.7软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( ):A.学生成绩管理系统B.c语言编译程序C.UNIX操作系统D.数据库管理系统(5)结构化程序所要求的基本结构不包括( )。
A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构(6)下面描述中错误的是( )。
A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是( )。
A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是( )。
A.1:1联系B.1:m联系C.m:1联系D.m:n联系(9)已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。
以下不能将变量C中的大写字母转换为对应小写字母的语句是( )。
全国计算机等级考试二级C语言程序设计真题精选3(含答案)
全国计算机等级考试二级C语言程序设计真题精选3一、单项选择题1.下列关于C语言文件的叙述中正确的是()。
A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件√D.文件由字符序列组成,其类型只能是文本文件解析:C语言将文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。
根据数据的组成形式,可将文件分为两种:①ASCII文件,又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符;②二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
所以C文件就是一个字节流或一个二进制流。
2.有以下程序:#includ<stdio.h>main()inm=1,n=2,*p=&m,*q=&n,*r; r=p,p=q;q=r; printf("%d,%d,%d,%",m,n,*p,*q);}程序运行后的输出结果是()。
A.1,2,1,2B.1,2.2,1 √C.2,1,2,1D.2,1.1,2解析:本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。
3.有以下程序:#includ<stdio.h>#include<string.h>strucAina;chab[10];doublc;};strucf (struct);main()struca={1001,"ZhangDa",1098.0}; a=f(a);printf ("%d,%s,%6.1",a.a,a.b,a.c);}strucf(struct)t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returt;}程序运行后的输出结果是()。
2010上半年计算机等考二级C语言真题及答案
《C++语言程序设计》第一次作业讲评说明:本次作业对应教材第一、二、三章的内容。
【讲评】本章主要考核大家对C++语言的基本概念、基本数据类型和表达式、流程控制的掌握程度,其中有一些需要记忆的概念,但多数问题还是需要理解的,希望通过作业讲评能够帮助大家把学习中的难题一一解决。
下面是对部分问题的讲评。
一、填空题1.C++语言中的每条基本语句以;作为结束符,每条复合语句以}作为结束符。
2.用于输出表达式值的标准输出流对象是cout,用于从键盘上为变量输入值的标准输入流对象是cin 。
3.当不需要函数返回任何值时,则应把该函数类型定义为void 。
4.执行“cout<<143<<’+’<<18<<’=’<<143+18<<endl;”语句后得到的输出结果为143+18=161。
【讲评】这里143、’+’、18和’=’分别是整型变量、字符常量、整型变量和字符常量,在通过cout输出语句时直接将其值输出,而143+18是一个表达式,需要计算加法后输出其值。
5.执行“cout<<“ning”<<“chen”<<38<<endl;”语句后得到的输出结果为ningchen38 。
6.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为main。
7.C++源程序文件的缺省扩展名为.cpp ,由C++源程序文件编译而成的目标文件的缺省扩展名为.obj,由C++目标文件连接而成的可执行文件的缺省扩展名为 .exe。
8.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用空格或回车符号作为分隔符。
9.十进制数25表示成符合C++语言规则的八进制和十六进制数分别为031和0x19符号。
10.在C++语言中,用转义字符序列‘\n’或操纵符endl表示输出一个换行符。
11.执行“cout<<char(’b’+2)<<endl;”语句后得到的输出结果为d。
2008到2010年计算机二级C语言笔试真题和答案
2010/3月全国计算机二级C 语言一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题1分,共70分) (1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log 2n )D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log 2n )(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)维护阶段 C)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件 B)数据库 C)字段 D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的 A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段(10)有两个关系R和T如下:R T则由关系R得到关系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)若有定义:doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是 A B Ca1 2 b2 2 c3 2 d 3 2 A B C c 3 2 d 3 2A)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)1234B)12C)12D)12334(16)以下关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==I)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是A)switch(a)B)switch(a==1)C)switch(a)D)switch(a==1){case1:a=b;break;{case0:a=b;break;{default:a++;break;{case1:a=b;break;default:a++;} case1:a++;} case1:a=b;} case0:a++;}(19)有如下嵌套的if语句(20)有以下程序if(a<b) #include<stdio.h>if(a<c) k=a; main()else k=c; {int i,j,m=1;if(b<c) k=b; for(i=1;i<3;i++)else k=c;以下选项中与上述if语句等价的语句是{for(j=3;j>0;j--)A)k=(a<b)?a:b;k=(b<c)?b:c; {if(i+j>3) break;B)k=(a<b)?((b<c)?a:b)((b>c)?b:c);m*=i*j;}}C)k=(a<b)?((a<c)?a:c)((b<c)?b:c);printf(“m=%d\n”,m);}程序运行后的输出结果是D)k=(a<b)?a:b;k=(a<c)?a:c;A)m=6B)m=2C)m=4D)m=5(21)有以下程序(22)有以下程序,其中k的初值为八进制数#include<stdio.h> #include<stdio.h>main() main(){int a=1,b=2; {int k=011;for(;a<8;a++) { b+=a;a+=2;} printf(“%d\n”,k++);}printf(“%d,%d\n”,a,b);}程序运行后的输出结果是程序运行后的输出结果是A)9,18B)8,11A)12B)11C)10D)9C)7,11D)10,14(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 ;D)#define N 2008int num[N];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(“%c,%c\n”,b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)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)有以下程序(30)有以下程序#include<stdio.h> #include<stdio.h>main() main(){int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0; {int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=1;i<3;i++) s=s+a[b[i]]; for(i=1;i<3;i++)printf(“%d\n”,s);}程序运行后的输出结果是for(j=1;j<=1;j++) t+=b[i][b[j][i]];A)6B)10printf(“%d\n”,t);}程序运行后的输出结果是C)11D)15A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",s2="\n123\\";printf("%d%d\n",strlen(s1),strlen(s2));则输出结果是A)55B)105C)107D)58(32)有以下程序(33)有以下程序#include<stdio.h> #include<stdio.h>#define N 8 int f(int t[],int n);void fun(int *x,int i) main(){*x=*x+i;} {int a[4]={1,2,3,4},s; main() s=f(a,4);printf(“%d\n”,s);}{int a[N]={1,2,3,4,5,6,7,8},i; int f(int t[],int n)fun(a,2); for(i=1;i<N/2;i++) {if (n>0)return t[n-1]+f(t,n-1);{printf(“%d”,a[i]);} else return 0;}printf(“\n”);}程序运行后的输山结果是程序运行后的输出结果是A)1313B)2234A)4B)10C)3234D)1234C)14D)6(34)有以下程序(35)有以下程序#include<stdio.h> #include<stdio.h>int fun( ) #define SUB(a) (a)-(a){static int x=1; main()x*=2;return x;} {int a=2,b=3,c=5,d;main() d=SUB(a+b)*c;{int i,s=1; printf(“%d\n”,d);}for(i=1;i<=2;i++) s=fun(); 程序运行后的输山结果是printf(“%d\n”,s);}程序运行后的输出结果是A)0B)-12A)0B)1C)-20D)10C)4D)8(36)设有定义:struct complex{int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序(38)有以下定义和语句#include<stdio.h> struct workers#include<string.h> {int num;char name[20];char c;struct A struct{int a;char b[10];double c;}; {int day;int month;int year;}s}void f(struct At); s truct workers w,*pw;main() pw=&w;能给w中year成员赋1980的语句是{struct Aa={1001,“ZhangDa”,1098.0};f(a); A)printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);} B)w.year=1980;void f(struct At) C)pw->year=1980;{t.a=1002;strcpy(t.b,“ChangRong”);t.c=1202.0;}输出结果是D)w.s.year=1980;A)1001,ZhangDa,1098.0B)1002,ChangRong,1202.0C)1001,ChangRong,10980D)1002,ZhangDa,1202.0(39)有以下程序(40)有以下程序#include<stdio.h> #include<stdio.h>main() main(){int a=2,b=a,c=2; {FILE *fp;char str[10]; printf(“%d\n”,a/b&c); fp=open(“myfile.dat”,“w”);} fputs(“abc”,pf);close(pf);程序运行后的输出结果是fp=open(“myfile.dat”,“a+”);A)0B)1fprintf(pf,“%d”,28); rewind(pf);C)2D)3fscanf(pf,“%s”,str);puts(str);close(pf);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
国家二级(C语言)机试历年真题试卷汇编1(题后含答案及解析)
国家二级(C语言)机试历年真题试卷汇编1(题后含答案及解析) 题型有:1. 选择题选择题1.下列叙述中正确的是( )。
【10年9月】A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.上述3种说法都不对正确答案:B解析:线性表的存储分为顺序存储和链式存储。
在顺序存储中,所有元素所占的存储空间是连续的,各数据元素在存储空间中是按逻辑顺序依次存放的。
所以每个元素只存储其值就可以了,而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。
所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。
知识模块:公共基础知识2.下列叙述中正确的是( )。
【10年9月】A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.上述3种说法都不对正确答案:C解析:在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。
栈跟队列不同,元素只能在栈顶压入或弹出,栈底指针不变,栈中元素随栈顶指针的变化而动态变化,遵循后进先出的规则。
知识模块:公共基础知识3.软件测试的目的是( )。
【10年9月】A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误正确答案:D解析:软件测试的目的是为了发现程序中的错误,而软件调试是为了更正程序中的错误。
知识模块:公共基础知识4.下面描述中,不属于软件危机表现的是( )。
【10年9月】A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高正确答案:A解析:软件危机主要表现在以下6个方面:①软件需求的增长得不到满足;②软件开发成本和进度无法控制;③软件质量难以保证;④软件不可维护或维护程序非常低;⑤软件的成本不断提高;⑥软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
2010年3月全国计算机等级考试二级C语言笔试试题(含参考答案)
#include<stdio.h>
#define N 8
void fun(int *x,int i)
{*x=*(x+i);}
main()
{ int a[N]={1,2,3,4,5,6,7,8},i;
fun(a,2);
for(i=0; i<N/2); i++)
{ printf("%d",a[i]);}
C)概念设计阶段D)物理设计阶段
(10)有两个关系R和T如下:
R T
A
B
C
a
1
2
b
2
2
c
3
2
d
3
2
A
B
C
c
3
2
d
3
2
则由关系R得到关系T的操作是
选择B)投影C)交D)并
(11)以下叙述正确的是
A)C语言程序是由过程和函数组成的
B)C语言函数可以嵌套调用,例如:fun(fun(x))
C)C语言函数不可以单独编译
void f(struct A t);
main()
{struct A a={1001,"ZhangDa",1098.0};
f(a); pringt("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct A t)
{t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}
}
程序运行后的输出结果是
A) 6 B)10 C) 11 D)15
30)有以下程序
#include<stdio.h>
2010年3月国家二级(VisualBasic)笔试真题试卷(题后含答案及解析)
2010年3月国家二级(VisualBasic)笔试真题试卷(题后含答案及解析)题型有:1. 选择题 2. 填空题选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1.下列叙述中正确的是A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2) C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D.对长度为n的有序链表进行对分查找,最坏情况F需要的比较次数为(nlog2n)正确答案:A解析:对长度为n的有序链表进行查找,最坏情况是从最小值开始查找最大值(或从最大值开始查找最小值),这个过程需要比较的次数为n,故选项A)正确。
对分查找只能针对随机存取的有序表进行,而有序链表只能进行顺序存取,不能进行随机存取,在有序链表上不能进行对分查找,故B)、C)、D)选项都错误。
2.算法的时间复杂度是指A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数正确答案:D解析:算法的时间复杂度足指算法需要消耗的时间资源,是独立于机器的,选项D)正确;相同的算法在不同的机器上运行时间可能不同,选项A)错误;算法所处理的数据量与算法无关,选项B)错误;程序的长短与程序执行时需要消耗的时间资源没有必然的关系,比如一个条件语句可以很长,但只需判断一次,而一个循环语句可能只有几行,但可以执行很多次,故选项C)错误。
3.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A.编辑软件B.操作系统C.教务管理系统D.浏览器正确答案:B解析:编辑软件、教务管理软件属于应用软件,操作系统属于系统软件,浏览器属于支撑软件,故本题答案选B。
4.软件(程序)调试的任务是A.诊断和改正程序中的错误B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质正确答案:A解析:软件调试的任务是诊断和改正程序中的错误,本题正确答案为A)。
国家计算机二级C语言历年真题及答案
全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(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) 可封装D) 自顶向下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)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#includemain(){ 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)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0C)3,2D)1,217)设有定义: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)有以下程序#includemain(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是A)3B)5C)7D)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{ 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)0B)2C)3D)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a=’a’;B)char a=’\n’;C)char a=’aa’;D)char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68C)E,DD)输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是A)32B)12C)21D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<N;I++)< p="" />{ max=MIN;if(maxreturn max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(maxD)赋值语句max=MIN;放错了位置(26)有以下程序#includemain(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1](28)有以下程序#include#includemain(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序#includemain(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(30)有以下程序#include#includemain(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun;B)viod *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char);pf=&fun;(34)有以下程序#includeint f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7B)8C)9D)10(35)有以下程序#include#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]=”string”;c=str;B)scanf(“%s”,c);C)c=getchar();D)*c=”string”;(38)有以下程序#include#includestruct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1001,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16B)8C)4D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。
二级计算机技能考试c语言试题及答案
二级计算机技能考试c语言试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 若有定义 `int a[3][4], *p[4];`,则以下哪个表达式是合法的?A. p[0] = a[0]B. p[0] = &a[0]C. p = aD. *p[0] = a[0]答案:A3. 在C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A4. 以下哪个选项是正确的C语言变量声明?A. int 5;B. int $a;C. int _5a;D. int a-5;答案:C5. 在C语言中,以下哪个运算符用于计算两个整数的差?A. %B. /C. -D. ^答案:C6. 若有定义 `int a = 10;`,则执行 `a += 5;` 后,变量a的值是多少?A. 5B. 10C. 15D. 20答案:C7. 在C语言中,以下哪个关键字用于声明一个无限循环?A. whileB. doC. forD. goto答案:C8. 在C语言中,以下哪个函数用于打开一个文件?A. fopen()B. fclose()C. fgetc()D. fputs()答案:A9. 若有定义 `char str[] = "Hello";`,则执行 `str[0] = 'J';` 后,字符串str的内容是什么?A. "Hello"B. "Jello"C. "Jello"D. "Jello"答案:B10. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:B二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以实现逻辑与操作。
计算机等级考试二级C语言试题及答案
{ int a=5; s+=f(&a);
}
s+=f(&a); printf(“%d\nC)7 D)8
38、有以下程序 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2);
15、 若以下选项中的变量已正确定义,则正确的赋值语句 是
(C) A)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3;
//%为模式运算,又称为求余运算,二侧均为整形数据 16、 设有以下定义
int a=0; double b=1.25; char c=’A’; #define d 2 则下面语句中错误的是(D) A)a++; B)b++ C)c++; D)d++;
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);
} 程序执行后的输出结果是(D)
A)自然数1~9的累加和
B)自然数1~10的累加和
C)自然数1~9中的奇数之和 D)自然数1~10中的偶数 之和
25、有以下程序 main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf(“n=%d\n”,n); } 程序执行后的输出结果是(D) A)n=5 B)n=2 C)n=3 D) n=4
全国计算机等级考试二级C语言笔试试题及答案
全国计算机等级考试二级C语言笔试试题及答案一、选择题(每小题2分,共70分)(1)下列叙述中正确的是A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是A)10B)8C)6D)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)选择C)插入D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域(11)对C++编译器区分重载函数无任何意义的信息是A)参数类型B)参数个数C)返回值类型D)常成员函数关键字coast(12)有如下类定义和变量定义:class A{publie:A(){data=0;}~A(){}int GetData () coast { return data;}void SetData(int n) {data=n;}private:int data;};ccnst A a;A b;下列函数调用中错误的是A)a .GetData();B)a .SetData(10);C)b .GetData();D)b .SetData(10);(13)有如下类定义和变量定义:class Parents{public:int publicuata;private:int privateData;};class ChildA:public Parents{/*类体略*/};class ChildB:private Parents{/*类体略*/);ChildA a;ChildBb;下列语句中正确的是A)cout<<a.publicData <<endl ;B)cout<<a.privateData <<endl ;C)cout<<b.publicData <<endl ;D)cout<<b.privateData <<endl ;(14)运算符重载时不需要保持的性质是A)操作数个数B)操作数类型C)优先级D)结合性(15)下列关于函数模板的描述中,错误的是A)从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准C)虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参D)模板参数表不能为空(16)要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是 A)ifstream fin=ifstream.open(“file.dat”);B)ifstream*fir.=new ifstream(“file.dat”);C)ifstream fin; fin.open(“file.dat”);D)ifstream *fin=new ifstream();fin一>open(“file.dat”);(17)下列描述中,不属于面向对象思想主要特征的是A)封装性B)跨平台性C)继承性D)多态性(18)有如下程序段:Tnt i=4;int j=l;int main(){int i=8,j=i;cout<<i<<j<<endl;}运行时的输出结果是A)44B)41C)88D)81(19)有如下程序段:int i=5;while(int i=0){cout《'*';i--;}运行时输出“*”的个数是A)0B)1C)5D)无穷(20)己知有数组定义char a[3][4];下列表达式中错误的是A)a[2]=“WIN”B)strcpy(a[2],“WIN”)C)a [2][3]='W'D)a[0][1]=a[0][1](21)已知函数fun的原型为int fun(int,int,int);下列重载函数原型中错误的是A)char fun(int,int);B)double fun(int,int,double);C)int fun(int,char*);D)float fun (int, int, int);(22)建立一个类对象时,系统自动调用A)析构函数B)构造函数C)静态函数D)友元函数(23)通过派生类的对象可直接访问其A)公有继承基类的公有成员C)私有继承基类的公有成员D)私有继承基类的私有成员(24)己知表达式++a中的“++”是作为成员函数重载的运算符,则与十+a等效的运算符函数调用形式为A)a .orerator++(1)B)operator++(a)C)operator++(a,l)D)a.operator++()(25)在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是A)()B)[ ]C)< >D){ }(26)当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为 A)ios_base::inB)ios_base::in|ios_base::outC)ios_base::outD)ios_base::in&ios_base::out(27)有如下程序:#include<iostream>#include<cstring>using namespace std;class XCD{char* a;int b;public:XCD(char* aa, int bb){a=new char[strlen(aa)+1];strcpty(a,aa);b=bb;}Char* Geta (){return a;)int Getb(){ return b;}};int main(){char *pl=“abcd”,*p2=“weirong”;int dl=6, d2=8;XCD x(pl,dl),Y(p2,d2);cout<<strien (x .Geta())+y. Getb()+endl;return 0;}运行时的输出结果是A)12B)16C)14D)11(28)有如下程序:#include<iostream>#include<cstring>using namespace std;class XCF{int a;XCF(int aa=0):a (aa){cout<<“1”;}XCF(XCF& x){a=x .a; cout<<“2”;)~XCF(){cout<<a;}int Geta(){return a;}};int main(){XCF dl(5),d7 (dl);XCF *pd=new XCF(8);cout<<pd一>Geta();delete pd;return 0;}运行时的输出结果是A)121SS88B)12188SSC)12185D)128512(29)已知类MyClass声明如下:class MyClass{int n;public;MyClass(int k):n(k){}int getValue()const{return n;}};在下列数组定义中正确的是A)MyClass x1[2];B)MyClass x2[2]={new MyClass(1),new MyClass(2)};C)MyClass *x3[2];D)MyClass *x4[2]={MyClass(1),MyClass(2)};(30)有如下程序:#include<iostream>using namespace std;class AA{lilt k;protected:int n;void setK(int k){ this->k=k;}public:void setN(int n){ this->n=n;}};class BB: public }{/*类体略*/};int main(){BB x_ ; //1x .n=1; //2x.setN (2); //3x.k=3; //4x .setK(4);return 0;}在标注号码的四条语句中正确的是A)1B)2C)3D)4(31)有如下类定义:class XX{int xx;public:XX():xx(0){cout<<' A';}XX(int n):xx ( n){tout<<' B';}};Class YY:public XX{Int yy;public:YY():yy ( 0){cout+yy;}YY(int n):XX(n+1),yy(n){cout<<yy;}YY (int m, int n):XX (m),yy(n){cout<<yy;} };下列选项中,输出结果为A0的语句是A)YY y1(0,0);B)YY y2(1);C)YY y3(0);D)YY y4;(32)有如下程序:#include<iostream>Using namespace std;class A{public:virtual void f(){cout+1;}void g(){cout<<2;}};class B:public A{public:virtual void f(){cout<<3;}void g(){ecut<<4;}};void show(A &a){a.f();a.g();}int main(){B b;show(b);return 0;}运行时的输出结果是A)12B)34C)14D)32(33)有如下程序:#include<iostream>using namespace std;class Pair{int m;int n;public:boot operator >(pair p)const; //须在类体外给出定义};int main(){Pair Al(3,4),p2(4,3);p3(4,5);Cout<<(pl>p2)<<(P2>P1)<<(p2>p3)<<(p3>p2);return 0;}运算符函数。
历年全国计算机等级考试二级C语言笔试选择真题及答案
⼀、下列各题A、B、C、D四个选项中,只有⼀个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是A.栈是“先进先出”的线性表B.队列是“先进先出”的线性表C.循环队列是⾮线性结构D.有序性表既可以采⽤顺序存储结构,也可以采⽤链式存储结构(2)⽀持⼦程序调⽤的数据结构是A.栈B.树C.队列D.⼆叉树(3)某⼆叉树有5个度为2的结点,则该⼆叉树中的叶⼦结点数是A.10B.8C.6D.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如下:RABCa32b01c21SABa3b0c2由关系R通过运算得到关系S,则所使⽤的运算为A.选择B.投影C.插⼊D.连接(10)将E-R图转换为关系模式时,实体和联系都可以表⽰为A.属性B.键C.关系D.域(11)以下选项中合法的标识符是A.1-1B.1—1C.-11D.1--(12)若函数中有定义语句:int k;,则A.系统将⾃动给k赋初值0B.这时k中值⽆定义C.系统将⾃动给k赋初值-1D.这时k中⽆任何值(13)以下选项中,能⽤作数据常量的是A.0115B.0118C.1.5e1.5D.115L(14)设有定义:int x=2;,以下表达式中,值不为6的是A.x*=x+1B.x++,2*xC.x*=(1+x)D.2*x,x+=2(15)程序段:int x=12;double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是A.123.141593B.123.141593C.12,3.141593D.123.141593(16)若有定义语句:double x,y,*px,*py,执⾏了px=&x, py=&y;之后,正确的输⼊语句是A.scanf(“%f%f”,x,y);B.scanf(“%f%f”,&x,&y);C.scanf(“%lf%le”,px,py);D.scanf(“%lf%lf”,x,y);(17)以下是if语句的基本形式:if(表达式)语句其中“表达式”A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式(18)有以下程序#includemain(){int x;scanf(“%d”,&x);if(x<=3); elseif(x!=10)printf(“%d\n”,x);}程序运⾏时,输⼊的值在哪个范围才会有输出结果A.不等于10的整数B.⼤于3且不等于10的整数C.⼤于3或等于10的整数D.⼩于3的整数(19)有以下程序#includeMain(){int a=1,b=2,c=3,d=0;if(a= =1 &&b++= =2)if(b!=2 || c--!=3)printf(“%d,%d,%d\n”,a,b,C.;else printf(“%d,%d,%d\n”,a,b,C.;else printf(“%d,%d,%d\n”,a,b,C.;}程序运⾏后的输出结果是A.1,2,3B.1,3,2C.1,3,3D.3,2,1(20)以下程序中的变量已正确定义for(i=0;i<4;i++,i++for(k=1;k<3;k++);printf(*”);程序段的输出结果是A.********B.****C.**D.*(21)有以下程序#includemain(){char*s=(“ABC.;do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII码值为65。
全国计算机等级考试二级笔试样卷C语言程序设计含答案
全国计算机等级考试二级笔试样卷C语言程序设计【打印】【字体:大中小】【关闭】一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列选项中不符合良好程序设计风格的是A)源程序要文档化B)数据说明的次序要规化C)避免滥用goto语句 D)模块设计要保证高耦合、高聚(2)从工程管理角度,软件设计一般分为两步完成,它们是A)概要设计与详细设计B)数据设计与接口设计C)软件结构设计与数据设计D)过程设计与数据设计(3)下列选项中不属于软件生命周期开发阶段任务的是A)软件测试B)概要设计C)软件维护D)详细设计(4)在数据库系统中,用户所见的数据模式为A)概念模式B)外模式C)模式D)物理模式(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和A)编码设计B)测试阶段C)运行阶段D)物理设计(6)设有如下三个关系表R S T下列操作中正确的是A)T=R∩S B)T=R∪SC)T=R×S D)T=R/S(7)下列叙述中正确的是A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对(8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A)63 B)64 C)6 D)7(9)数据库技术的根本目标是要解决数据的A)存储问题B)共享问题C)安全问题D)保护问题(10)对下列二叉树进行中序遍历的结果是A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG(11)下列叙述中错误的是A)一个C语言程序只能实现一种算法B)C程序可以由多个程序文件组成C)C程序可以由一个或多个函数组成D)一个C函数可以单独作为一个C程序文件存在(12)下列叙述中正确的是A)每个C程序文件中都必须要有一个main()函数B)在C程序中main()函数的位置是固定的C)C程序中所有函数之间都可以相互调用,与函数所在位置无关D)在C程序的函数中不能定义另一个函数(13)下列定义变量的语句中错误的是A)int _int; B)double int_; C)char For; D)float US$; (14)若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是A)++x,y=x-- B)x+1=y C)x=x+10=x+y D)double(x)/10(15)以下关于逻辑运算符两侧运算对象的叙述中正确的是A)只能是整数0或1 B)只能是整数0或非0整数C)可以是结构体类型的数据D)可以是任意合法的表达式(16)若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) :(y++)中的条件表达式(x-y) 等价的是A)(x-y>0) B)(x-y<0) C)(x-y<0||x-y>0) D)(x-y==0)(17)有以下程序main(){ int x, y, z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1(18)设有定义:int a; float b; 执行scanf("%2d%f",&a,&b); 语句时,若从键盘输入876 543.0<回车>,a和b的值分别是A)876和543.000000 B)87和6.000000 C)87和543.000000 D)76和543.000000(19)有以下程序main(){ int a=0, b=0;a=10; /* 给a赋值b=20; 给b赋值*/printf("a+b=%d\n",a+b); /* 输出计算结果*/}程序运行后的输出结果是A)a+b=10 B)a+b=30 C)30 D)出错(20)在嵌套使用if语句时,C语言规定else总是A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对C)和之前与其最近的且不带else的if配对D)和之前的第一个if配对(21)下列叙述中正确的是A)break语句只能用于switch语句B)在switch语句中必须使用defaultC)break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句(22)有以下程序main(){ int k=5;while(--k) printf("%d",k -= 3);printf("\n");}执行后的输出结果是A)1 B)2 C)4 D)死循环(23)有以下程序main(){ int i;for(i=1; i<=40; i++){ if(i++%5==0)if(++i%8==0) printf("%d ",i);}printf("\n");}执行后的输出结果是A)5 B)24 C)32 D)40(24)以下选项中,值为1的表达式是A)1 –'0' B)1 - '\0' C)'1' -0 D)'\0' - '0'(25)有以下程序fun(int x, int y){ return (x+y); }main(){ int a=1, b=2, c=3, sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是A)6 B)7 C)8 D)9(26)有以下程序main(){ char s[]="abcde";s+=2;printf("%d\n",s[0]);}执行后的结果是A)输出字符a的ASCII码B)输出字符c的ASCII码C)输出字符c D)程序出错(27)有以下程序fun(int x, int y){ static int m=0, i=2;i+=m+1; m=i+x+y; return m;main(){ int j=1, m=1, k;k=fun(j,m); printf("%d,",k);k=fun(j,m); printf("%d\n",k);}执行后的输出结果是A)5, 5 B)5, 11 C)11, 11 D)11, 5(28)有以下程序fun(int x){ int p;if(x==0||x==1) return(3);p=x-fun(x-2);return p;main(){ printf("%d\n",fun(7)); }执行后的输出结果是A)7 B)3 C)2 D)0(29)在16位编译系统上,若有定义int a[]={10,20,30}, *p=&a;,当执行p++;后,下列说法错误的是A)p向高地址移了一个字节B)p向高地址移了一个存储单元C)p向高地址移了两个字节D)p与a+1等价(30)有以下程序main(){ int a=1, b=3, c=5;int *p1=&a, *p2=&b, *p=&c;*p =*p1*(*p2);printf("%d\n",c);}执行后的输出结果是A)1 B)2 C)3 D)4(31)若有定义:int w[3][5]; ,则以下不能正确表示该数组元素的表达式是A)*(*w+3) B)*(w+1)[4] C)*(*(w+1)) D)*(&w[0][0]+1)(32)若有以下函数首部int fun(double x[10], int *n)则下面针对此函数的函数声明语句中正确的是A)int fun(double x, int *n); B)int fun(double , int );C)int fun(double *x, int n); D)int fun(double *, int *);(33)有以下程序void change(int k[ ]){ k[0]=k[5]; }main(){ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;while( n<=4 ) { change( &x[n]) ; n++; }for(n=0; n<5; n++) printf("%d ",x[n]);printf("\n");}程序运行后输出的结果是A)6 7 8 9 10 B)1 3 5 7 9 C)1 2 3 4 5 D)6 2 3 4 5(34)有以下程序main(){ int x[3][2]={0}, i;for(i=0; i<3; i++) scanf("%d",x[i]);printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);}若运行时输入:2 4 6<回车>,则输出结果为A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6(35)有以下程序int add( int a,int b){ return (a+b); }main(){ int k, (*f)(), a=5,b=10;f=add;…}则以下函数调用语句错误的是A)k=(*f)(a,b); B)k=add(a,b);C)k= *f(a,b); D)k=f(a,b);(36)有以下程序#includemain( int argc, char *argv[ ]){ int i=1,n=0;while (iprintf("%d\n",n);}该程序生成的可执行文件名为:proc.exe。
2010年3月-2012年3月全国计算机二级C语言真题及详细解析
2012年3月全国计算机二级C语言笔试真题及详细解析(考试时间90分钟,满分100分)一、选择题1、下列叙述中正确的是:A、循环队列是队列的一种顺序存储结构B、循环队列是队列的一种链式存储结构C、循环队列是非线性结构D、循环队列是一直逻辑结构2、下列叙述中正确的是A、栈是一种先进先出的线性表B、队列是一种后进先出的线性表C、栈和队列都是非线性结构D、以上三种说法都不对3、一棵二叉树共有25个节点,其中5个时子节点,那么度为1的节点数为A、4B、6C、10D、164、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A、内模式B、外模式C、概念模式D、逻辑模式5、在满足实体完整性约束的条件下A、一个关系中可以没有候选关键词B、一个关系中只能有一个候选关键词C、一个关系中必须有多个候选关键词D、一个关系中应该有一个或者多个候选关键词6、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A、自然连接B、并C、差D、交7、软件生命周期中的活动不包括A、软件维护B、市场调研C、软件测试D、需求分析8、下面不属于需求分析阶段任务的是A、确定软件系统的功能需求B、确定软件系统的系统的系能需求B、制定软件集成测试计划D、需求规格说明书审评9、在黑盒测试方式中,设计测试用例的主要根据是A、程序外部功能B、程序内部逻辑C、程序数据结构D、程序流程图10、在软件设计中不使用的工具是A、系统结构图B、程序流程图C、PAD图D、数据流图(DFD图)11、针对简单程序设计,以下叙述的实施步骤正确的是A、确定算法和数据结构、编码、调试、整理文档B、编码、确定算法和数据结构、调试、整理文档C、整理文档、确定算法和数据结构、编码、调试D、确定算法和数据结构、调试、编码、整理文档12、关于C语言中数的表示,以下叙述正确的是A、只有整型数在允许范围内能精确无误的表示,实型数会有误差B、只要在在允许范围内整型和实型都能精确表示C、只有实型数在允许范围内能精确无误的表示,整型数会有误差D、只有八进制表示的数在不会有误差13、以下关于算法叙述错误的是A、算法可以用伪代码、流程图等多种形式来描述B、一个正确的算法必须有输入C、一个正确的算法必须有输出D、用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码14、以下叙述错误的是A、一个C程序可以包含多个不同名的函数B、一个C程序只能有一个主函数C、C程序在书写时,有严格的缩进要求,否则不能编译通过D、C程序的主函数必须用main作为函数名15、设有以下语句Char ch1,ch2, scanf(”%c%c”,&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是A、A和B之间用逗号间隔B、A和B之间不能有任何间隔符C、A和B之间可以用回车间隔D、A和B之间用空格间隔16、以下选项中非法的字符常量是A、’\102’B、’\65’C、’\xff’D、’\019’17、有以下程序#include <sthio.h>Main(){Int A=0,B=0,C=0;C=(A-=A-5);(A=B,B+=4);Printf(“%d, %d, %d\n”,A,B,C)}程序运行后输出的结果是A 0,4,5B 4,4,5C 4,4,4D 0,0,018、设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是A、x++; printf((“%d\n”,x);B、n=++x; printf((“%d\n”,n);C、++x; printf((“%d\n”,x);D、n=x++; printf((“%d\n”,n);19、以下选项中,能表示逻辑值“假”的是A 1B 0.000001C 0D 100.020、有以下程序#include <sthio.h>Main(){ int a;Scanf(“%d”,&a);If(a++<9) printf((“%d\n”,a);Else printf((“%d\n”,a--);}程序运行时键盘输入9<回车>,则输出的结构是A、10 B 11 C 9 D 821、有以下程序#include <sthio.h>Main(){int s=0,n;For (n=0;n<3;n<++){switch(s){ case 0;Case 1;s+=1;Case 2;s+=2;break;Case 3;s+3;Case 4;s+=4;}printf((“%d\n”,s);}}程序运行后的结果是A 1,2,4B 1,3,6C 3,10,14D 3,6,1022、若k是int类型变量,且有以下for语句For(k=-1;k<0;k++)printf(****\n”);下面关于语句执行情况的叙述中正确的是A、循环体执行一次B、循环体执行两次C、循环体一次也不执行D、构成无限循环23、有以下程序#include <sthio.h>Main(){char A,B,C;B=’1’;C=’A’For(A=0;A<6;A++){if(A%2) putchar(B+A);Else putchar(C+A);}}程序运行后输出的结果是A 1B3D5FB ABCDFEC A2C4E6D 12345624、设有如下定义语句Int m[ ]={2,4,6,8},*k=m;以下选项中,表达式的值为6的是A *(k+2)B k+2C *k+2D *k+=225、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
绝密★启用前2010年3月全国计算机等级考试二级笔试试卷C语言程序设计及参考答案(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分。
共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。
(1) 下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)log n)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(2log n)D) 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n2(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 如下:RT则由关系R 得到关系T 的操作是 选择 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)AaBcC)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)#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);}当执行程序时,按下列方式输入数据(从第一列开始,<CR>代表回车,注意:回车是一个字符)12<CR>34<CR>则输出结果是:A、1234B、12C、12D、123 3416、以下关于C语言数据类型使用的叙述中错误的是:A、若要准确无误的表示自然数,应使用整数类型。
B、若要保存带有多位小数的数据,应使用双精度类型。
C、若要处理如"人员信息"等含有不同类型的相关数据,应自定义结构体类型。
D、若只处理"真"和"假"两种逻辑值,应使用逻辑类型。
17、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是:A、1B、0C、2D、不知道a的值,不能确定18、以下选项中与if(a==1) a=b;else a++;语句功能不同的switch语句是:A、switch(a)B、switch(a==1){ case 1:a=b;break; { case 0 : a=b;break;default : a++; case 1 : a++;} }C、switch(a)D、switch(a==1){ default : a++;break; { case 1:a=b;break;case 1:a=b; case 0: a++;} }19、有如下嵌套的if语句if(a<b)if(a<c) k=a;else k=c;elseif(b<c) k=b;else k=c;以下选项中与上述if语句等价的语句是k=(a<b)?a:b;k=(b<c)?b:c;k=(a<b)?((b<c)?a:b):((b<c)?b:c);k=(a<b)?((a<c)?a:c):((b<c)?b:c);k=(a<b)?a:b;k=(a<c)?a;c(20)有以下程序#include <stdio.h>main(){ int i,j,m=1;for(i=1;i<3;i++){ for(j=3;j>0;j--){ if(i*j>3) break;m*=i*j;}}printf("m=%d\n",m)}程序运行后的输出结果是(A) m=6 (B)m=2 (C)m=4 (D)m=5(21)有以下程序#includes <stdio.h>main(){ int a=1,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)定义成viod类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能够正确定义数组的语句是A)int num[0..2008]; B) int num[];C) int N=2008; D) #define N 2008int num[N]; 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("%c,%c\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]={0,2,1,3,0},is=0for(i=0;i<5;i++) s=s+a[b[i]];printf("%d\n",s);}程序运行后的输出结果是A) 6 B) 10 C) 11 D)1530)有以下程序#include<stdio.h>main(){ int b[3] [3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0; i<3; i++)For(j=i;j<=i;j++) t+=b[i][b[j][i]];Printf("%d\n",t);}程序运行后的输出结果是A)1 B)3 C)4 D)9(31)若有以下定义和语句char sl[10]= "abcd!", *s2="n123\\";Printf("%d %d\n", strlen(s1),strlen(s2));则输出结果是A) 5 5 B)10 5 C)10 7 D)5 8(32)有以下程序#include<stdio.h>#define N 8V oid fun(int *x,int i){*x=*(x+i);}main(){ int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);For(i=0; i<N/2); i++){ printf("%d",a[i]);}Printf("\n");}程序运行后的输出结果是A)1 3 1 3 B) 2 2 3 4 C) 3 2 3 4 D)1 2 3 4(33)有以下程序#include<studio.h>int f(int t [ ],int n);main(){int a[4]={1,2,3,4},s;s=f{a,4}; printf("%d\n",s);}int f(int t[], int n){ if (n>0) return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4 B)10 C)14 D)6(34)有以下程序#include<studio.h>int fun(){static int x=1;x*=2; return x;}main(){int I,s=1;for (i=1;i<=2;i++) s=fun();printf("%d\n",s);}程序运行后的输出结果是A)0 B)1 C)4 D)8(35)以下程序#include <stdio.h>#define SUB(a) (a)-(a)main(){int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的结果是A)0 B)-12 C)-20 D)10(36)没有定义struct complex{ int real, unreal ;} datal={1,8},data2;则以下赋值语句中的错误的是A)data2=data1; B)data2=(2,6);C)data2.real1=data1.real; D)data2.real=data1.unreal;(37)有以下程序#include <studio.h>#include <string.h>struct A{int a; char b[10];double c;};void f(struct A t);main(){struct A a={1001,"ZhangDa",1098.0};f(a); pringt("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是A)1001,ZhangDa,1098.0 B)1002,ChangRong,1202.0 C)1001,ChangRong,1098.0 D)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num; char name[20];char c;Srruct{int day;int month;intyear;} s;};Struct workers w,*pw;Pw=&w能给w中year成员赋1980的语句是A)*pw.year=1980; B)w.year=1980;C)pw->year=1980; D)w.s.year=1980;(39)有以下程序#include <stdio.h>main(){int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的结果是A)0 B)1 C)2 D)3(40)以下程序#include<stdio.h>main( ){ FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp); fclose(fp);fp=fopen("myfile.dat","a+");rewind(fp,"gd",28);rewind(fp);fscanf(fp,"gs",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abc B)28c C)abc28 D)因类型不一致而出错二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。