译的时候赋予的,在程序执行期间不再赋予初值。本题由于连续三次调用函数fun(),三次对静态变量x进行操作,x的值应依次为6,7,8。
(40)D 【解析】 本题中fun函数实现了字符串函数strcat的功能,将字符串aa连接到字符串ss的末尾。调用fun函数时,最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。 (8)【8】 b=I+1 【解析】 本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2后的和累加至a,所以a的值就是1 10之间的偶数之和; b的形参t和s分别指向了字符串ss和aa,然后通过一个while循环使t指向字符串ss的结束符的位置,第二个while循环将字符串aa中的字符(包括结束符'\\0')逐个复制到字符串ss的末尾处。 二、选择题
(1)【1】 需求规格说明书 【解析】 软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。需求规格说明书包括正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。
(2)【2】 输出结果 【解析】 测试用例(Text Case)是为测试设计的数据。测试用例由测试输入数据和与之对应的预期输出结果两部分组成。
(3)【3】 存储结构 【解析】 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。
(4)【4】 19 【解析】 在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
(5)【5】 数据模型 【解析】 数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。 (6)【6】 1 【解析】 字符空格的ASCII码不为0,所以本题中表达式?!c?的值为0, b=0&&1的结果显然为0。 (7)【7】 3 【解析】 本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中
值是1 11之间的奇数和,但在输出b值时,c去掉多加的11,即为1 10之间的奇数之和。
(9)【9】 a[0][I] 【10】 b[I][0] 【解析】 b[i][N-1]= a[0][i]实现把a所指二维数组中的第0行放到b所指二维数组的最后一列中,?b[I][0]=a[N-1][I] 实现将a所指N行N列的二维数组中的最后一行放到b所指二维数组中的第0列。 (10)【11】 3 5 【解析】 函数
swap(int *a,int *b)的功能是实现*a和?*b?中两个数据的交换,在主函数中调用swap(p,q)后,参形指针变量a和b分别指向i和j,在swap(int *a,int *b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为3 5。
(11)【12】 a b c d e f g l k j I h 【解析】 本题主要考查了字符变量可参与的运算。因为字符在计算机中是以ASCII码的形式存放的,所以字符变量可看作整型变量来处理,如参与算术运算等,某字符的大写字母的ASCII码值比它对应的小写字母ASCII码值小32。
(12)【13】 4 【解析】 在主函数中,语句p=a;p++使用指针p指向数组a[1],所以输出结果为4。
(13)【14】 -> 【解析】 若结构体变量abc有成员a,并有指针p_abc指向结构变量abc,则引用变量abc成员a的标记形式有abc.a和p_abc->a。
(14)【15】 1,2,3,0,0,1,2,3,0,0, 【解析】 本题考查文件读写函数fread和fwrite的用法。fwrite函数将数组a的前5个元素输出到文件fp中两次,共10个字节,再调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,0},最后的输出结果为\。
一、选择题
在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)软件生命周期中花费费用最多的阶段是
A)详细设计 B)软件编码 C)软件测试 D)软件维护 (2)为了提高测试的效率,应该
A)随机选取测试数据 B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划 D)集中对付那些错误群集的程序 (3)以下不是面向对象思想中的主要特征的是
A)多态 B)继承 C)封装 D)垃圾回收
(4)下列叙述中,不符合良好程序设计风格要求的是
A)程序的效率第一,清晰第二 B)程序的可读性好 C)程序中要有必要的注释 D)输入数据前要有提示信息 (5)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指
A)模块间的关系 B)系统结构部件转
换成软件的过程描述 C)软件层次结构 D)软件开发过程
(6)数据处理的最小单位是
A)数据 B)数据元素 C)数
据项 D)数据结构
(7)假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为 A)log2n B)n2 C)O(n1..5) D)n(n-1)/2 (8)在深度为5的满二叉树中,叶子结点的个数为
A)32 B)31 C)16 D)15
(9)数据库系统的核心是
A)数据库 B)数据库管理系统 C)模拟模型 D)软件工程
(10)一个关系中属性个数为1时,称此关系为
A)对应关系 B)单一关系 C)一元关系 D)二元关系
(11)下面各选项中,均是C语言合法标识符的选项组是
A)33 we auto B)_23 me _3ew C)_43 3e_ else D)ER -DF 32
(12)可在C程序中用作用户标识符的一组标识符是
A)and B)Date
C)Hi D)case
_2007 y-m-d Dr.Tom Bigl
(13)以下对C语言函数的有关描述中,正确的是
A)在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参
B)C函数既可以嵌套定义又可以递归调用 C)函数必须有返回值,否则不能使用函数 D)函数必须有返回值,返回值类型不定 (14)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是 A)函数的实参和其对应的形参共占同一存储单元 B)形参只是形式上的存在,不占用具体存储单元
C)同名的实参和形参占同一存储单元 D)函数的形参和实参分别占用不同的存储单元
(15)现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为: A)int B)double
A)6 B)7 D)9
C)8
(20)若程序执行时的输入数据是\C)float
D)char
(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是 A)均占4个字节 B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义 D)由C语言编译系统决定
(17)有以下程序段
int j;float y;char name[50]; scanf(\当执行上述程序段,从键盘上输入55566 7777abc后,y的值为
A)55566.0 B)566.0 C)7777.0 D)566777.0 (18)若变量已正确定义,有以下程序段 i=0;
do printf(\printf(\其输出结果是
A)0,0 B)0,1 C)1,1
D)程序进入无限循环
(19)下列程序的运行结果是 #include \main()
{ int x=-9,y=5,z=8; if(x 则下述程序的输出结果是 #include while((cs=getchar())!=; '\\n') {switch(cs-'2') { case 0 case 1: putchar(cs+4); case 2: putchar(cs+4); break; case 3: putchar(cs+3); default: putchar(cs+2); } } } A)668977 B)668966 C)6677877 D)6688766 (21)以下程序的输出结果是 main() { int a,i;a=0; for(i=1;i<5;i++) { switch(i) { case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } }printf(\ A)31 B)13 C)10 D)20 (22)现有如下程序段 #include \main() { int k[30]={12,324,45,6,768,98,21,34,453,456}; int count=0,i=0; while(k[i]) { if(k[i]%2==0||k[i]%5==0)count++; i++; } printf(\则程序段的输出结果为 A)7,8 B)8,8 C)7,10 D)8,10 (23)若有以下程序 #include for(i=0;i<4;i++)a[i]=*p; printf(\上面程序的输出结果是 A)6 B)8 C)4 D)2 (24)有以下程序 #include { int i,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++)m=m%j; printf(\} 程序的运行结果是 A)0 B)1 C)2 D)3 (25)已知字符′A′的ASCII码值是65, 字符变量cl的值是′A′,c2 的值是′D′。执行语句printf(\后,输出结果是 A)A,B B)A,68 C)65,66 D)65,68 (26)下列程序是用来判断数组中特定元素的位置所在的。 #include int fun(int *s, int t, int *k) { int i; *k=0; for(i=0;i { int a[10]={ 876,675,896,101,301,401,980,431,451,777},k; fun(a, 10, &k); printf(\如果输入如下整数:876 675 896 101 301 401 980 431 451 777 则输出结果为 A)7,431 B)6 C)980 D)6,980 (27)下面程序的文件名为t.exe,在DOS下输入的命令行参数为:t to meet me<回车> 则程序输出的结果是 #include \main(argc,argv) int argc;char *argv[]; { int i; printf(\ A)3 B)4 C)2 D)以上答案都不正确 (28)有如下程序 int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=&a[3],b;b=p[5]; 则b的值是 A)5 B)6 C)9 D)8 (29)以下叙述中错误的是 A)改变函数形参的值,不会改变对应实参的值 B)函数可以返回地址值 C)可以给指针变量赋一个整数作为地址值 D)当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL (30)下面程序的输出结果是 #include { int a[]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf(\ A)0 B)1 C)10 D)9 (31)有下面程序段 #include \ #include \main() { char a[3][20]={{\try!\ char k[100]={0},*p=k; int i; for(i=0;i<3;i++) { p=strcat(p,a[i]);} i=strlen(p); printf(\则程序段的输出结果是 A)18 B)19 C)20 D)21 (32)若有定义: char *st= \you \下列程序段中正确的是 A)char a[11], *p; strcpy(p=a+1,&st[4]); B)char a[11]; strcpy(++a, st); C)char a[11]; strcpy(a, st); D)char a[], *p; strcpy(p=&a[1],st+2); (33)有以下程序 #include while(*s<=′9′&&*s>=′0′) {n=10*n+*s-′0′;s++;} return(n); } main() { char s[10]={′6′,′1′,′*′,′4′,′*′,′9′,′*′,′0′,′*′}; printf(\ 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库A2012国家c语言笔试套题(7)在线全文阅读。
相关推荐: