三九宝宝网宝宝百科宝宝知识

07年4月等级考试二级C语言模拟练习一

11月11日 编辑 39baobao.com

[二级建造施工之选择水性木器漆的方法]随着人们环保意识的增强,可挥发物极少的水性漆受到市场的欢迎。顾名思义,水性漆是以水作为稀释剂的漆。如我们所用的内外墙涂料、金属漆等都有相应的水性漆产品。可见水性漆是...+阅读

二、填空题。

(1)算法的复杂度主要包括空间复杂度和【1】复杂度。

【解析】算法的复杂度主要指时间复杂度和空间复杂度。

(2)在线性结构中,队列的操作顺序是先进先出,而栈的操作顺序是【2】 。

【解析】队列和栈都是线性结构,但是不同之处在于队列的操作顺序是先进先出,而栈的操作顺序是先进后出。

(3)数据流图的类型有【3】和事务型。

【解析】典型的数据流图有两种,即变换型和事务型。

(4)在数据库理论中,数据物理结构的改变,如存储设备的更换、物理存储的更换、存取方式等都不影响数据库的逻辑结构,从而不引起应用程序的变化,称为【4】 。

【解析】数据的物理结构改变,不影响数据库的逻辑结构,从而不引起应用程序的变化,这种性质叫做物理独立性。

(5)数据库管理系统是位于用户与【5】之间的软件系统。

【解析】数据库管理系统是帮助用户创建和管理数据库的应用程序的集合。

因此,数据库管理系统需要操作系统的支持,为用户提供服务。

(6)若从键盘输入58,则以下程序的输出结果是【6】 。

main()

{ int a;

scanf("%d",

if(a>50) printf("%d",a);

if(a>40) printf("%d",a);

if(a>30) printf("%d",a);

}

【解析】在程序中,执行scanf()语句后,a被赋值为58。接着执行第一个if语句,因为,a=58>50,执行第一个if语句后面的输出语句,输出58;接着执行第二个if语句,因为,a=58>40,执行第二个if语句后面的输出语句,输出58;接着执行第三个if语句,因为,a=58>30,执行第三个if语句后面的输出语句,输出58,所以最后的输出为585858。

(7)以下程序的输出结果是【7】 。

main()

{ int a=177;

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

}

【解析】在控制格式符中“o”代表的是将数据按八进制数输出,十进制数的177代表的八进制数是261。

(8)以下程序的输出结果是【8】 。

main()

{ int a=0;

a+=(a=8);

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

}

【解析】在程序中首先将8赋值给变量a,然后再进行复合赋值运算。即a=a+a=8+8=16,所以该空格处应该填16。

(9)以下程序的输出结果是【9】 。

main()

{ int a=5,b=4,c=3,d;

d=(a>b>c);

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

}

【解析】关系运算符“>”的结合方式是从左向右的,所以在本题中的表达式a>b>c;从左向右开始计算,a>b的结果为“1”,接着1和c比较假,该空格处应该填0。

(10)以下定义的结构体类型包含两个成员,其中成员变量info用来存放整型数据;成员变量link是指向自身结构体的指针。

请将定义补充完整。

struct node

{ int info;

【10】link;

};

【解析】link是指向结构体自身的指针,因此link是指针,指向struct node类型的数据,可定义成“struct node *link”。 (11)以下程序的输出结果是【11】 。

main()

{ int s,i;

for(s=0,i=1;i<3;i++,s+=i);

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

}

【解析】此程序中,for循环语句后面直接跟了一个“;”,表明循环体为空。输出语句不在for循环体内,所以在循环执行完毕后才输出s的值。

s、i的初值分别为0和1,判断循环条件,表达式“1<3”成立,执行“i++,s+=i”后,i和s的值分别为2和1,继续判断循环条件,表达式“2<3”成立,执行“i++,s+=i”后,i和s的值分别为3,再次判断循环条件,表达式“3<3”不成立,循环结束。

(12)以下程序的输出结果是【12】 。

main()

{ char *p="abcdefgh",*r;

long *q;

q=(long *)p;

q++;

r=(char *)q;

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

}

【解析】本题定义了一个字符型指针变量p并通过赋初值让它指向了一个字符串,定义了另一个字符型指针变量r和一个长整型指针变量q。

首先通过语句“q=(long*)p;”把p的地址值强制转换为长整型地址值并赋值给q,然后执行“q++;”,地址值增加了4,执行语句“r=(char*)q;”,把长整型指针变量q的值再强制转换成字符型地址值并赋给r,r的值应为字符串中字符“e”的地址,最后输出r指向的字符串,是“efgh”。

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

main()

{ char s[]="abcdef";

s[3]='\0';

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

}

【解析】字符串的结束标记'\0',当输出一个存放在字符数组中的字符串时,只需输出到'\0'为止,而不管其后有什么数据。

本题给字符数组s的元素s[3]赋值为'\0',故只能输出3个字符“abc”。

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

main()

{ int x=0;

sub(

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

}

sub(int *a,int n,int k)

{ if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

【解析】在主函数中定义了一个变量x并赋初值0,然后执行函数调用语句,该语句的执行过程为sub(x=y;y=z;}

以下程序段通过宏调用实现变量a、b内容的交换,请填空。

float a=5,b=16,c;

MYSWAP(【15】,a,b);

【解析】本题关键在考生是不是了解宏的基本运用,在使用宏的时候明显少了一个实参。在定义宏的时候变量z是用来做中间变量的,题目中缺的变量就是一个中间变量c。

(16)以下程序用来统计文件中字符的个数。请填空。

&emspinclude "stdio.h"

main()

{ FILE * fp; long num=0L;

if((fp=fopen("fname.dat", "r"))==NULL);

{ printf("Open error\n");exit(0);}

while(【16】)

{ fgetc(fp);num++;}

printf("num=%1d\n",num-1);

fclose(fp);

}

【解析】统计文件中字符个数的算法可描述如下:首先判断文件位置指针是否指向了文件尾,如果不是则读出一个字符,同时字符的个数加1,再判断文件位置指针是否位于文件尾,如此循环,直到文件位置指针位于文件尾为止。

本题首先以读文件的方式打开了文件“fname.dat”,如果打开成功则把返回的文件型指针赋值给fp,然后通过循环求文件中的字符数。首先判断文件位置指针是否位于文件尾,如果不是则循环读取字符,每次字符数加1。所以下划处应填循环条件,文件位置指针不是指向文件尾,即“!feof(fp)”。

(17)以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个值作为函数值返回,并通过形参传回此值所在的行下标。

请填空。

&emspdefine N 3

&emspdefine M 3

select(int a[N][M],int *n)

{ int i,j,row=1,colum=1;

for(i=0;i<N;i++)

for(j=0;j<M;j++)

if(a[i][j]>a[row][colum]){row=i;colum=j;}

*n=【17】;

return(【18】);

}

main()

{ int a[N][M]={9,11,23,6,1,15,9,17,20},max,n;

max=select(a,

printf("max=%d,line=%d\n",max,n);

}

【解析】指针变量作为函数参数及二维数组的一个典型算法—求值及其下标。

通过对题意的分析,在select()函数中,变量row的作用是用来记录元素的行下标,colum的作用是用来记录元素的列下标。程序中通过一个循环求得数组元素中值的行列下标,分别存放在变量row和colum中,根据题意,应该把行下标赋值给形参指针变量n指向的变量,把值a[row][colum]作为函数值返回。

(18)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。

int mystrlen(char *str)

{ int i;

for(i=0;【19】!= '\0';i++);

return(【20】);

}

【解析】求str指向的字符串长度的算法是:用一个变量i表示字符串中字符的位置,一开始赋值为0,取出i位置的字符,判断是否为“\0”,若不是,则i的值加1,如此循环直到取出的字符是“\0”为止,此时i的值就是字符串的长度。

由此可知,第一个空处应填第i位置上的字符*(str+i);第二个空格应该填字符串的长度i。

以下为关联文档:

[CATTI]二级笔译实务模拟题Section 1: English-Chinese Translation (英译汉) This section consists of two parts, Part A - "pulsory Translation" and Part B - "Choice of Two Translations" con...

二级建造之点式玻璃幕墙的施工工艺点式玻璃幕墙不论其那种结构形式,施工工艺都非常严格和复杂,在这里无法详细写出,在此依悬索式玻璃幕墙施工顺序示意程序来代表施工工艺过程。 测量放线→预埋件校准→桁架的安...

二级建造师施工辅导之外墙浮雕施工工艺一、墙面的要求及验收 1、新的水泥砂浆、混凝土墙面必须经过一段合理的保养时间,让其充分干燥(如其表面颜色较深则表示其水份含量仍很高),使其含水率小于10%,PH值小于10后方可...

二级建造施工辅导之不发火水磨石地面施工1、工程概况 本工程为某集团公司火炸药生产车间配套火炸药储存库房,建筑面积296平方米,为甲类仓库、B级防爆要求。库房内不设采暖电源。库房外设防爆照明电源,室内外均设消火栓...

全国翻译资格考二级笔译模拟试题5Part B Choice of Two Translations (二选一题) (20 points) Topic 1 (选题一) 中国画 中国画与中医、京剧在一起,被誉为中国的"三大国粹。"按内容分,主要有人物画、山水画、花...

二级建造施工之建筑施工前的准备工作在检修工程的施工中,对检修计划、施工准备、施工技术方案、施工安全措施、检修质量、文明检修、交工验收、开停车衔接、费用|考试大|核算十分重视。检修工程施工后,做到台台设...

二级建造施工之浇带质量控制的技术措施后浇带作为超长建筑不留温度伸缩缝及高层建筑高层部分与裙房间不留沉降缝的技术措施,已普遍采用。 但如在施工过程中有些环节注意不到,往往会使后浇带起不到应有作用,还可能给...

二级建造施工之建筑腻子作用及施工工艺一、建筑腻子的定义 建筑腻子是施涂于建筑物内外墙面,起弥补基层缺陷或表现多种花纹和质感作用的涂装基层材料。 二、建筑腻子的作用 1、 弥补基层缺陷 找平 用刮尺在墙面或...

二级建造施工之工程材料的质量监理工程材料的质量好坏,直接影响着整个建筑物质量等级、结构安全、外部造型和建成后的使用功能等。因此,工程材料的质量监理无论在建筑、安装还是交通行业均是项目监理工作中一个...

推荐阅读
图文推荐