第一篇:2017年福建省二级C语言试卷真题
(1)下面叙述正确的是(D)。
A)main()函数必须位于源程序文件的开头 B)程序中必需含有自定义函数 C)每行最多只能写两条语句
D)所有语句都必须以分号“;”结束
(2)下面叙述错误的是(D)。
A)C语言规定可逐个引用数组元素但不能一次引用整个数组 B)C语言数组名称是数组在内存中的首地址 C)数组中每一个元素都属于同一个数据类型 D)C语言数组长度在定义数组时刻不作确定
(3)以下程序段的运行结果是(C)。
int t[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12};printf(“%dn”,t[1][1]);A)4 B)3 C)5 D)
1(4)以下程序段的运行结果是(C)。
char str[3][2]={„a‟,‟b‟,‟c‟,‟ ‟,‟e‟,‟f‟};printf(“%s”,str[0]);A)abc ef B)abcef C)abc D)a
(5)以下程序段的运行结果是(C)。
int f(int c){ c+=2;
return c;} main(){ int a=2,c=5;a=f(a);
printf(“%d %d n”,a,c);} A)2 4 B)4 4 C)4 5 D)2
5(6)下面叙述错误的是(D)。
A)“#define PRICE 30”命令的作用是定义一个与30等价的符号常量PRICE B)C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率
C)“#include
(7)若有定义:int a=2,*p=&a;,则以下(A)均表示地址。A)&a,p B)a,p C)a,*p D)&a,*p
(8)以下程序段运行后x的值为(C)。
int a[ ]={1,2,3,4,5,6,7,8};int i,x,*p;x=1;p=&a[1];for(i=0;i<3;i++)
x*=*(p+i);A)1 B)120 C)24 D)6
(9)下列(C)对结构类型变量定义是错误的。A)struct teacher
{ int num;
int age;
};struct teacher teach1;B)struct
{ int num;
int age;
} teach1, teach2;C)struct
{ int num;
int age;
} teacher;struct teacher teach1;D)struct teacher
{ int num;
int age;
} teach1;
(10)以下程序段运行后,(D)对数组a元素的引用是错误的。(其中0≤i<4,0≤j<3)
int i,j,(*p)[3];int a[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12};p=a;A)*(*(a+i)+j)B)*(*(p+i)+j)C)p[i][j] D)*(p[i]+j)
(11)若有定义:
char ch;int j,k;enum day {sun, mon, tue, wed, thu, fri, sat};int a[sat];则(C)对下列语句是否符合语法规则的判断是正确的。sun=0;
/*语句1*/ j=mon+tue;
/*语句2*/ if(a[mon]>0)j++;/*语句3*/ A)语句1、2、3均正确
B)语句2正确,语句1和语句3错误 C)语句1错误,语句2和语句3正确 D)语句1、2、3均错误
(12)C语言的基本数据类型包括(A)。A)整型、实型、字符型 B)整型、指针型、字符型 C)整型、实型、逻辑型 D)整型、实型、空类型
(13)下面程序运行后,屏幕显示File open error!,则可能的原因是(A)。#include
return;} fscanf(fp,”%s”,str);fclose(fp);} A)当前工作目录下没有test.txt文件 B)函数fopen()的参数是错误的
C)当前工作目录下的test.txt文件是空文件 D)text.txt文件已经打开
(14)(C)语句符合C语言语法。A)int a=b=2,c=5;B)float x=3.2, int i,j=6;C)float x=2.3,b,c;D)int a=2,b+=a;
(15)若有定义:int x,y,z;语句x=(y=z=3,++y,z+=y);运行后x的值为(B)。A)6 B)7 C)8 D)
3(16)若有定义int a=8,b=5;要实现输出形式为:8*5=40,正确的printf()函数调用语句是(D)。A)printf(“a*b=a*bn”);B)printf(“a*b=%dn”,a*b);C)printf(“%d*%d=a*bn”,a,b);D)printf(“%d*%d=%dn”,a,b,a*b);
(17)若有定义:int a;且表达式!a的值为0,则表达式(B)的值为1。A)!(a<0||a>0)B)a!=0 C)a= =0 D)a=0
(18)下列运算符中优先级最低的是(C)。A)> B)* C)= D)!
(19)以下程序段运行后x的值为(C)。
int a=3,b=6,x;x=(a= =b)?a++:--b;A)6 B)4 C)5 D)3
(20)以下程序段运行后x的值为(A)。
int i=0,x=0;for(;i<=5;i++,i++){x+=3;} A)9 B)15 C)6 D)12
(21)(B)是关于C语言数据类型的正确叙述。A)枚举类型不是基本类型
B)变量使用前应定义相应的数据类型 C)不允许使用空类型 D)数组不是构造类型
(22)(C)是正确的数组定义。A)int n=5;int arr[n];B)int n;n=5;int arr[n];C)int arr[10];D)int N=5, arr[N];
(23)以下程序段运行后a的值为(B)。
int a=2;a=strcmp(“miss”,”miss”);A)true B)0 C)1 D)-
1(24)以下程序段的运行结果是(D)。
int fun(int array[3][3]){ int j;
for(j=0;j<3;j++)array[1][j]++;
printf(“n”);} main(){ int j,a[3][3]={0,1,2,1,0,4,2,4,5};
fun(a);
for(j=0;j<3;j++)printf(“%2d”,a[1][j]);
printf(“n”);} A)1 0 4 B)0 1 2 C)1 2 3 D)2 1
5(25)若有定义:#define PI 3,则表达式PI*2*2的值为(C)。A)4 B)不确定 C)12 D)32
2(26)若有定义:int *p1,*p2;,则不能用于指针变量p1、p2之间的运算符是(C)。A)-B)= C)+ D)= =
(27)若有定义:
struct teacher { int num;
char sex;
int age;} teacher1;则下面叙述错误的是(A)。A)teacher1是结构类型名
B)struct teacher是用户定义的结构类型
C)num、sex、age都是结构变量teacher1的成员 D)struct是结构类型的关键字
(28)下列程序段运行后,表达式(A)的值为3。
struct point { int x;
int y;} *p;struct point a[3]={1,2,3,4,5,6};p=a;A)p[1].x B)*(p+2)C)p[3].x D)p[2].x
(29)若有定义:
typedef int NUM[100];NUM n;则(A)语句是正确的。A)n[0]=2;B)NUM=2;C)NUM=n;D)n=2;
(30)(D)为非法的字符串常量。A)“case” B)“ “ C).”056” D)„123‟
(31)若当前工作目录下有一文本文件test.txt,其内容为“cprogram“(不包含引号),则以下程序段的运行结果是(A)。
FILE *fp;char *str;if((fp=fopen(“test.txt”,”r”))!=NULL)
str=fgets(str,5,fp);printf(”%s“,str);fclose(fp);A)cpro B)cprog C)ogram D)gram
(32)若有定义:int a=3;,语句a+=a-=a*a;运行后a的值为(C)。A)-3 B)-6 C)-12 D)0
(33)若有定义:int i=3,j=6;,则表达式(--i)*(j++)的值为(A)。A)12 B)10 C)18 D)15
(34)getchar()函数的功能是获取终端输入的(B)。A)一个实型变量值 B)一个字符 C)多个字符
D)一个整型变量表达式
(35)若有定义:int a;,则表达式(B)不能用来判断a值为奇数是“真”,偶数是“假”。A)a%2= =1 B)!(a%2)C)a%2 D)!(a%2= =0)
(36)若有定义:float x=3.5,y=3.6;则表达式(A)的值为6。A)(int)x+(int)y B)x+y C)(int)(x+y)D)int(x+y)
(37)以下程序运行后输出结果是(C)。void main(){ int a,b=2,c=6;a=3;if(a>6)a=a+b;else if(a= =6)b=a+c;else a=b+c;
printf(”%dn“,a);} A)9 B)6 C)8 D)
5(38)以下程序段运行后x的值为(D)。
int i,j,x=0;for(i=3;i>=1;i--)for(j=1;j<=i;j++)
x=x+2;A)8 B)14 C)10 D)1
2(39)下面叙述错误的是(D)。
A)c源程序必须包含一个main()函数 B)c源程序可由一个或多个函数组成
C)一个c源程序的执行是从main()函数开始,直到main()函数结束 D)注释说明部分只能位于c源程序的最前面
(40)下面叙述错误的是(C)。
A)一个指针变量只能指向同一类型的变量 B)一个变量的地址称为该变量的指针 C)可以将一个整数值赋给指针变量
D)任何指针变量都可以与空指针NULL进行比较
(41)以下程序的运行结果是(C)。
main(){ int x,y;int *p,*q,*t;x=23;y=45;p=&x;q=&y;t=p;p=q;q=t;
printf(”%d,%dn“,x,y);} A)45,23 B)45,45 C)23,45 D)23,2
3(42)若有定义int a=1,b=2,t=3;
struct data { char a;
float b[3];
long c;}d1;则变量d1的长度是(B)。A)4 B)17 C)12 D)15
(43)以下程序的运行结果是(A)。
main(){ int a[3]={1,2,3};int *num[3];int **p,i;for(i=0;i<3;i++)
num[i]=&a[i];p=num;
printf(”%d “,**p);} A)1 B)&a[0] C)3 D)num
(44)下面程序运行后,屏幕显示write ok!,则下面叙述正确的是(C)。
main(){ FILE *fp;fp=fopen(“data.txt”,”wt”);if(fp!=NULL){ fprintf(fp,”%sn”,”File write successd!n”);fclose(fp);printf(“write ok!n”);} } A)当前工作目录下找不到data.txt文件 B)当前工作目录的data.txt文件已经打开 C)当前工作目录的data.txt文件已经关闭
D)当前工作目录下存在data.txt文件,其中的内容是”write ok!”
(45)(C)为正确的用户标识符。A)union B)3_row C)max_at D)min-5
(46)若有定义:int b=-15;,则(C)为正确的赋值表达式。A)b=*5 B)*b=6 C)b+=b*3 D)b+10=-5
(47)以下叙述错误的是(C)。
A)算术运算符中不包含“=”运算符
B)模运算符“%”是c语言基本的算术运算符 C)算术运算符中只有“*”、“/”优先级高于关系运算符
D)自加和自减运算符只能用于变量,而不能用于常量或表达式
(48)若有定义:float x=2,y;int a=3;语句y=1*(x+a)/3;运行后,y的值为(D)。A)2.0 B)1.0 C)0 D)1.666667
(49)若有定义:int arr[15],n=5;无法正确引用arr数组元素的是(A)。A)arr[10+n] B)arr[0] C)arr[15-n] D)arr[n]
(50)以下程序段运行后s的值是(B)。
int a[3][3]={1,2,3,1,2,3,1,2,3};int i,j,s=0;for(i=0;i<3;i++)for(j=i;j<3;j++)
s+=a[i][j];A)12 B)14 C)13 D)15
(51)以下程序段的运行结果是(C)。
char a[]=”abcdef”;char b[]=”xyz”;strcpy(a,b);printf(“%c”,a[2]);A)c B)y C)z D)b
(52)以下程序的运行结果是(C)。
#define X a+b main(){
int a=3,b=4,s1;
s1=2*X;
printf(”%dn",s1);} A)8 B)14 C)10 D)6
(53)若有定义int x=1,y=2,n=3;则(C)为正确的表达式。A)float(y/n)B)(x+y)(y+n)C)x=y*3,y=(x+n)/y D)x=ny
(54)若有定义
struct teacher { int num;
char name[10];
char sex;
int age;}t1={2001,”Li Ming”,‟M‟,35};则下列(B/C)对结构变量引用是正确的。A)t1->name B)t1.name C)t1.name[0] D)t1->name[0]
(55)若有定义enum day{sun,mon,tue,wed,thu,fri,sat};,则枚举常量sun、mon的值分别为(A)。A)0 1 B)7 1 C)7 0 D)1
2(56)若有语句int a;char c;scanf(“%3d%c”,&a,&c);,为将整数135赋给a,字符'6'赋给c,正确的数据输入方式是(C)。(说明:
(56)若有定义int a=3,b=5,c=8;则表达式!(a-b)||(c-b)的值为(A)。A)1 B)0 C)2 D)
3(57)若有定义:float x=3.5,y=5.5;则表达式(A)的值为2。A)(int)(x+y)%7 B)int(x+y)%7 C)(x+y)%7 D)(int)x+y%7
(58)若有定义:int i,x=0;语句for(i=1;i<=3;i++)x+=2;与下列(D)程序段不等价。A)i=1;for(;i<=3;i++)x+=2;B)for(i=1;i<=3;)
{x+=2;i++;} C)i=1;for(;i<=3;){x+=2;i++;} D)i=1;
for(;;i++)x+=2;
(59)以下(A)对二维数组arr的初始化是错误的。A)int arr[2][3]={{1,2},{3,4},{5,6}};B)int arr[ ][3]={1,2,3,4,5};C)int arr[2][3]={{1},{3,4,5}};D)int arr[2][3]={{1,2},{3,4}};
(60)若有定义:char str1[10],str2[10]=”Fujian”;,能将字符串”Fujian”赋给数组str1的正确语句是(D)。A)strcopy(str1,str2);B)str1=”Fujian”;C)strcpy(str2,str1);D)strcpy(str1,str2);
(61)C语言中,数组名作为函数调用的实参时,下面叙述正确的是(A)。A)形参数组中各元素值的改变会使实参数组相应元素的值同时发生变化 B)传递给形参的是数组第一个元素的值 C)传递给形参的是数组元素的个数
D)传递给形参的是数组中全部元素的值
(62)以下程序段的运行结果是(C)。
int x[ ]={2,3,4,5,6,7},*p=x;int i,s=0;for(i=1;i<5;i++)s+=p[i++];printf(“%d”,s);A)14 B)6 C)8 D)20
(63)若有定义int x,a,b;语句x=(a=2,b=3,a+b);运行后,x、a、b的值依次为(D)。A)2 3 5 B)5 3 2 C)3 2 5 D)5 2
3(64)以下程序段的运行结果是(B)。
int s=15;switch(s/4){default: printf(“Over “);case 1: printf(“One “);break;case 2: printf(“Two ”);} A)Two B)Over One C)Over Two D)One
(65)若有定义#define F 2+3,则表达式F*F的值为(D)。A)13 B)17 C)25 D)11
(66)以下程序段的运行结果是(A)
int x[3]={1,2,3};int *p;p=x;for(p++;p<&x[2];p++)printf(“%d “,*p);A)2 B)2 3 C)3 D)1 2
(67)若有定义
union u_type { int x;
float y[3];
char z;}a;则变量a的长度是(D)A)4 B)1 C)15 D)12
(68)若有定义:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4];p=a;(C)对数组a元素的引用是正确的。A)**(p+4)B)(**p)[2] C)*(p[2]+3)D)*(p[4])
(69)(B)为正确的字符常量。A)' 84' B)'@' C)'165' D)'bcd'
(70)以下程序段的运行结果是(A)。
int s=15;switch(s/4){ case 1: printf(“One “);case 2: printf(“Two ”);case 3: printf(“Three”);default: printf(“Over “);} A)Three Over B)Two Over C)Three D)One Over
(71)以下程序段运行后x的值为(A)。
int a[8]={1,2,3,4,5,6,7,8},i,x=0;for(i=1;i<8;i++,i++)x=x+a[i];A)20 B)18 C)16 D)36
(72)以下程序段的运行结果是(B)。
char str[ ]={“FuJian”};printf(“%d”,strlen(str));A)8 B)6 C)7 D)9
(73)以下程序的运行结果是(C)。
int a=2,b=3;int min(int a,int b){ int c;
c=a
return(c);} main(){ int a=4;
printf(“%d”,min(a,b));} A)4 B)2 C)3 D)2,3
(74)以下程序段运行后*(p++)的值为(B)。
char a[5]=”work”;
char *p;
p=a;A)„o‟ B)„w‟
C)a[1]的地址 D)a[0]的地址
(75)若有定义:int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;,则(B)表达式是错误的。A)p++ B)a++ C)a[2] D)p[2]
(76)C语言中,对文件操作的一般步骤是(C)。A)定义文件指针,读文件,写文件,关闭文件 B)操作文件,定义文件指针,修改文件,关闭文件 C)定义文件指针,打开文件,读写文件,关闭文件 D)打开文件,定义文件指针,读写文件,关闭文件
(76)(D)为正确的变量名。A)5_pro B)case C)else D)pro_5
(77)下面叙述正确的是(B)。A)2/3与2%3等价 B)5/(int)4.0与5/4等价 C)++2与--3等价 D)++2与3等价
(78)若有定义float x;,要从键盘输入数据6.02赋给x,则应选用(B)语句。A)scanf(“%8.2f”,&x);B)scanf(“%f”,&x)C)scanf(“%4.2f”,&x)D)scanf(“%1.2f”,&x)
(79)若有定义:int x,a;赋值语句a=(x%3= =0)?0:1;与(D)语句不等价。A)if(x%3!=0)a=1;else a=0;B)if(!(x%3= =0))a=1;else a=0;C)if(x%3= =0)a=0;else a=1;D)if(x%3)a=0;else a=1;
(80)以下程序段运行后x的值为(A)。
int i =0,x=2;
while(i++<=5)
{
x+=2;
} A)14 B)8 C)12 D)10
(81)下面叙述正确的是(C)。A)宏名必须用大写字母表示
B)一个源程序只能有一个预编译处理命令行 C)宏展开不占用运行时间,只占用编译时间 D)预处理命令也是C语句,必须以分号结束
(82)(A)对枚举类型的定义是错误的。A)enum b{1,2,3};B)enum a{A,B,C};C)enum d{X=0,Y=5,Z=9};D)enum c{D=3,E,F};
(83)C源程序中main()函数的位置(D)。A)必须在自定义函数前面 B)必须位于程序的最前面 C)必须在系统库函数后面 D)可以在自定义函数后面
(84)(A)为合法的常量。A)1.23E+8 B)5,326 C)3.21E-6.5 D)„b_k‟
(85)下面叙述正确的是(A)。
A)C语言中整型与字符型变量的混合运算表达式的结果是整型 B)“abc”+”xxx”是正确表达式
C)模运算符”%”两边运算数的数据类型是任意的 D)(3+9)++是正确表达式
(86)若有定义:int a=1,b=2,c=3,d=4,t=2,k=2;语句(t=a
(87)若有定义:int x;char c=‟A‟;则正确的赋值表达式是(D)。(说明:‟A‟的ASCII码的十进制值为65,‟a‟的ASCII码的十进制值为97)A)x=c+‟CBA‟ B)x=c+‟ABC‟ C)x=‟ABC‟ D)x=c+32
(88)下面叙述正确的是(B)。
A)for循环只能用于循环次数已经确定的情况
B)for循环的循环体可包含多条语句,但必须用花括号{}括起来 C)在for循环中,不能用break语句跳出循环体 D)for循环是先执行循环体语句,后判断表达式
(89)若有定义:int a[10],i=2;,能正确引用a数组的是(B)。A)a(7)B)a[10-i] C)a[10] D)a[9+i]
(90)若有定义:int a[3][4]={{1,2},{3,4},{5,6,7}};,则a[1][1]的值为(B)。A)3 B)4 C)1 D)2
(91)以下程序段的运行结果是(D)。
union { int num1;
int num2;}s;s.num1=20;s.num2=30;printf(“%d”,s.num1);A)2030 B)20 C)50 D)30
(92)若有定义:int a,b=5;,语句a=(b/2)+b%2;运行后a的值为(B)。A)4 B)3 C)0 D)2
(93)若有定义:char c1=‟A‟,c2=‟B‟;,语句printf(“%d+%d=%d”,c1,c2,c1+c2);运行后的结果为(A)。(说明:‟A‟的ASCII码的十进制值为65)A)65+66=131 B)A+B=AB C)A+B=131 D)65+66=AB
(94)以下程序的运行结果是(C)。
fun(){ static int a=0;
a++;
printf(“%d “,a);} main(){ int i;for(i=1;i<=2;i++)fun();} A)0 1 B)1 1 C)1 2 D)0 0
(95)下面程序运行后,文件d_f.dat的内容是(A)。
main(){ FILE *fp;int i=10,j=20;fp=fopen(“d_f.dat”,”w”);fprintf(fp,”%d “,i);fclose(fp);fp=fopen(“d_f.dat”,”a”);fprintf(“%d”,j);fclose(fp);} A)10 B)20 10 C)20 D)10 20
(96)若有定义:int i,x;,(C)不是死循环。A)for(;;i+=2);B)while(x=1);C)for(x=5;x>0;x--);D)for(i=10;;i--);
(97)以下程序段运行后*(p+1)的值为(A)。
char a[ ]=”good”;char *p;p=a;A)„o‟
B)a[1]的地址 C)不确定 D)„g‟
(98)若有定义:int a[3][2];,则表达式&a[2][1]-a的值为(C)。A)2 B)4 C)5 D)3
(99)(A)能正确定义一个指向函数的指针。A)int(*p)()B)int(*p())C)(int *)p()D)int *p()
(100)若有定义
Typedef int * INTEGER;INTEGER p;则下面叙述正确的是(B)A)p是与INTEGER相同的类型
B)程序中可用INTEGER定义int类型指针变量 C)p是一个整型变量
D)程序中可用INTEGER定义int类型变量
(101)若有定义:int a,b=6;语句a=--b;运行后,a、b的值分别是(C)。A)5 6 B)6 6 C)5 5 D)6 5
(102)以下程序段运行后x的值为(D)。
int a[3][3]={1,2,3,4,5,6,7,8,9};int i=0,x=0;for(;i<3;i++)x+=a[i][i];A)12 B)0 C)18 D)15
(103)以下程序的运行结果是(C)。
main(){ char a[ ]=”137”,*p;for(p=a;p (104)(D)不是文件读库函数。A)fread()B)fscanf()C)fgetc()D)fputs() (105)C语言的函数体由(B)括起来。A)< > B){ } C)()D)[ ] (106)下面叙述错误的是(B)。 A)一个C源程序可由一个或多个函数组成 B)构成C语言源程序的基本单位是语句 C)C源程序中大、小写字母是有区别的 D)若一条语句较长,可分写在下一行或多行上 (107)只能向终端输出一个字符的是(C)。A)printf()函数 B)getchar()函数 C)putchar()函数 D)scanf()函数 (108)若有定义:int x=1,y=2,z=3;则表达式(A)的值为0。A)!((x (109)C语言中,若缺省定义函数返回值类型,则该函数默认返回值类型是(D)。A)void B)double C)long D)int (110)x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为(C)。A)!(x>-20)&&!(x<-5)B)-20 (111)C语言中,二维数组元素在内存中的存放顺序是(C)。A)按列存放 B)由用户自己定义 C)按行存放 D)随机存放 (112)若有定义:enum num{a1,a2=3,a3,a4=0};,则枚举常量a2、a3的值分别为(B)。A)2 3 B)3 4 C)3 3 D)1 2 (113)以下程序段运行后x的值为(C)。 int a[]={1,2,3},b[]={4,3,3};int *p,*q;int i,x;p=a;q=b;for(i=0;i<3;i++)if(*(p+i)= =*(q+i))x=*(p+i)*2;} A)2 B)不确定 C)6 D)4 模拟卷1 1 [填空题] 下列给定程序中,函数fun的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。 例如,若s所指字符串为“baacda”,c中的字符为a,执行后S所指字符串为“baaaacdaa”。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: 参考解析: 【参考答案】 【解题思路】 填空1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为‘ ’。 填空2:while语句用以确定字符串的长度,所以变量n赋初值为0。 填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,本题目给出参数为c。 二、程序修改题 [简答题] 下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。 例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“Abcd”,则c中的字符串应为“aBcdeFgH”。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MODl1.C中,不得增行或删行,也不得更改程序的结构! 参考解析: 【参考答案】(1)int k=0; (2)while(*p||*q) 【考点分析】 本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。 【解题思路】 (1)变量k存放数组e的下标,因此应初始化为0。 (2)while循环语句的循环条件是判断两个字符串是否到达结尾。三.程序设计题 [简答题] 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。 例如,字符串中的内容为:“****A*BC*DEF*G*******”.删除后,字符串中的内容应当是:“****A*BC*DEF*G”。在编写函数时,不得使用C语言提供的字符串函数。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 参考解析: 【参考答案】 【考点分析】 本题考查:删除字符串尾部+号;删除的主要思想是把不删除的字符保留起来。 【解题思路】 对于一个字符串要删除其尾部的*号,只需要在最后一个不是*号的字符后面加上结束符号‘ ’。具体操作为:首先找到字符串的结尾,然后从最后一个字符开始往前逐个判断是否为*号,直到找到非*号字符为止,最后在该字符后面加上结束符号‘ ’。 模拟卷2 一、程序填空题 [填空题] 下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 参考解析: 【参考答案】(1)N (2)k (3)ss[i] 【考点分析】 本题考查:for循环语句;if语句条件表达式;字符串拷贝函数strepy的使用。 【解题思路】 填空l:for循环语句作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是i 填空2:题目要求删除串长度小于k的字符串,所以if条件语句的条件表达式是len<=k。 填空3:通过字符串拷贝函数将串长不大于k的字符串另存,并记录个数。 【解题宝典】 字符串拷贝函数strcpy,其格式为:strepy(字符数组名1,字符数组名2) 功能:把字符数组2中的字符串拷贝到字符数组l中。字符串结束标识‘ ’也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。 二、程序修改题 [简答题] 给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。 例如:当输入100时,输出:100=9+10+11+12+13+14+15+16 100=18+19+20+21+22 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: 参考解析: 【参考答案】(1)m=n; (2)m=m-c;c++; (3)if(m==0) 【解题思路】 (1)每次循环,程序需要对n执行减去连续的正整数序列 来判断n是否刚好为0,即n是否是连续的正整数序列之和,所以需要使用临时变量m寄存n的值,每次循环对m执行减运算操作,不满足继续下一轮。另外,程序声明变量m时,未初始化它的值,所以此处应该修改为:m=n。 (2)语法错误。C语言中每个语句必须以分号结束,所以应修改为:m=m-c;c++。 (3)题目判断n是否是连续的正整数序列之和,若是,则输出所有序列,程序中m依次减去连续的正整数,当m为0时,表示m(即11)满足条件,再输出当前序列中的每个正整数,所以此处判断条件反了,应修改为:if(m==0)。3 [简答题] 请编写函数fun,其功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~P(含P,P小于等于n-1)的数组元素平移到数组的最后。 例如,一维数组中的原始内容为:1、2、3、4、5、6、7、8、9、10;P的值为3。移动后,一维数组中的内容应为:5、6、7、8、9、10、1、2、3、4。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: 参考解析: 【参考答案】 【解题思路】 本题要求把下标从0~P(含P,P小于等于n-1)的数组元素平移到数组的最后,可以根据输入的P值,通过for循环语句,将P+1-n-1(含n-1)之间的数组元素依次向前移动P+1个存储单元,即W[j-1]=w[j];,同时将0~P个数组元素逐一赋给数组w[n-1],也就是通过语句w[n-1]=ch;来实现此操作的。 一、程序填空题 [填空题] 给定程序中,函数fun的功能是:将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: 参考解析: 【参考答案】 【解题思路】 填空1:由语句fopen(“filel.txt”,“r”)可知,fp应该是文件类型指针,因此本空应该填写FILE *。 填空2:feof函数只能对文件类型数据进行操作,因此本空应填写fp。 填空3:putchar()代表输入一个字符,从ch=fgetc(fp)可以看出本题应该填写ch。 二、程序修改题 [简答题] 给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到C所指数组中,过长的剩余字符接在C所指的数组的尾部。例如,当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”时,C所指数组中的内容应为“a4b3c2dlefg”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdefg”时,C所指数组中的内容应该为“192f3e4dcba”。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: 参考解析: 【参考答案】 【解题思路】 (1)由i和j定义的初始值可知,此处应该判断i是否小于j,所以应改为while(i (2)此处将if错写成If,这个错误比较简单,但往往不容易发现。三.程序设计题 [简答题] 请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。 例如,若输入17,5,则应输出19、23、29、31、37。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: 参考解析: 【参考答案】 【解题思路】 本题主要考查素数的判定方法,如果一个数不能被除了1和其自身以外的数整除,则这个数为素数。本程序使用循环语句控制需要判断的数,在循环体中判断该数是否为素数,若是则存入数组xx中。 二级C语言上机题做法小结 陈忠权 记 一.天空题。 1.如果是填函数的返回值,去看return返回值的类型,就是函数的返回类型。如果return找不到,就看函数的调用。 2.在for语句中,如 for(i=0;i<=_____;i++),一般填N,如果没有N,有小n,就填小n.3.平均值的两种求法,一种是中数除个数,如s/N;一种是每个数除个数后再把值相加。如av=av+s[i]/N.4.在while语句中,下面一定会有个什么加加,否则不能进行循环。 5.在循环结构中注意两级循环for语句中i与j的关系,从而定位该填什么。 6.如果是赋初值,就看你所赋的值的变量是拿去干什么,如果是用去加就赋0如果是用去乘就赋1.如果是指针的,就去题目中找一个类型相同的具有实值的变量赋给她.7.结构体的调用如b.name和a.sno等。 8如果在题目中看到(*ss)那么后面一定是填一个数组,如(*ss)[][M]或(*ss)[M].9.注意拷贝命令的写法。 10如果在填空题中程序与数的组合有关,哪就会与10有关。是除10,还是与10求余。11.一个字符要变成相应的整形的数,就让这个字符减去字符’0’或是48就可。 12.带头结点的写法如p->next.13.定义文件FILE,文件名filename,打开文件fopen()阅读文件名fread()关闭文件fclose() 14.奇数与2求余成立,偶数与2求余为0 15.插入的写法和删除的写法,删除一个东西就让他等于0就行 二.改错题(在/*********found*********/下一行就是错误点) 1.只要看到(*ss)++就一定是去括号。 2.注意函数内的变量,如果在题中使用时带有*号,那么变量定义中一定要加上*号。注意函数类型是否正确,看return。 3.看关键字是否写正确,一定要是蓝体的才是正确的。有可能是字母位置错,或是大小写不对。 4.for语句中一定是两个分号,不是逗号。 5.字符串的长度比下标大一,如果要让她等于下标的话要减去1.6.在if语句中大于、小于号一般互换,如果在公式中如果包含n或m就要小于等于n或m。7.等号一般在if语句中出现为==,不是赋值的=.8.在if或while与句中< > 号一般可互换。9.注意错处得0和O是否混用了。10.注意带头结点的写法。11.%号和/号互换。 12.注意题中大小写的错误。13.注意交换的写法.14.如n=strlen[aa] 这种写法是错的,这是调用,不是定义,应写为n=strlen(aa) 15.注意符号使用的错误。 16.看是否少分号。 17看函数的返回值是否正确,看return。18.sum一般赋初值为0.19.Scanf语句中一定要有&号。 20.函数的定义不能是fun(int x,y,z)这种写法,应是fun(int x,int y,int z)21.数组的定义一般为s[M]或s[][M]在二维数组的定义中第二个方括号中一定要有一个数M或其他。 22.如果程序是把小写变成大写就减去32就行。 三.程序编写题。 如果遇到的是void无返回值类型的函数,就在里面填int czq=1;就行。填好之后就编译,运行。程序完整运行之后,去打开考生文件夹(用记事本打开,如果记事本不能用,就用vc++6.0软件打开),参照in文件(如果没有in文件,哪么数据就可能在程序中,或运行中显示出来)修改out文件或写out文件。保存就可。 如果是有返回值类型的函数,就在里面填return 1;就行,同样运行,修改或写out文件就行。 下面举两个例子; 1,。如第10题: #include } main(){ char s[81];int n; printf(“Enter a string:n”);gets(s); printf(“Enter n : ”);scanf(“%d”,&n); fun(s,n); printf(“The string after deleted:n”);puts(s); NONO();} NONO(){/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE *in, *out; int i, n;char s[81]; in = fopen(“D:k0124010001in.dat”,“r”); out = fopen(“D:k0124010001out.dat”,“w”); for(i = 0;i < 10;i++){ fscanf(in, “%s”, s); fscanf(in, “%d”, &n); fun(s,n); fprintf(out, “%sn”, s); } fclose(in); fclose(out);考试就在fun函数中填int czq=1;然后运行结束后打开考生文件夹,in为 *******A*BC*DEF*G**** 4 *******A*BC*DEF*G**** 8 **********LKJFHG****KHJ***SDFGH****KJKJ*J*K*K*J***** 4 ******OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ***** 5 ********HJJKD***JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ********** 3 *****HKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ*** 2 ******JHGDFXGGJH****JFHGFK**HKH**KJHKL***KLH*** 3 ************UYKJDFARTQYW*****HFGUJ**KJHKJ**KJHK*** 4 ********JKHILUHIUGCLKLKJGH*******HJGHG**KJH**JY*JH*M*HJH**** 3 *****JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK***** 2 打开out文件为; *******A*BC*DEF*G**** *******A*BC*DEF*G**** **********LKJFHG****KHJ***SDFGH****KJKJ*J*K*K*J***** ******OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ***** ********HJJKD***JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ********** *****HKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ*** ******JHGDFXGGJH****JFHGFK**HKH**KJHKL***KLH*** ************UYKJDFARTQYW*****HFGUJ**KJHKJ**KJHK*** ********JKHILUHIUGCLKLKJGH*******HJGHG**KJH**JY*JH*M*HJH**** *****JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK***** 然后参照题目要求,是使字符串的前导*号不能多于n个,多于的就删掉,少的就不用管。哪么in文件中不是有数字如4、8、4、5、3等这就是n的值。如第一行就是前导*号不能多于4个,多的就删掉。第一行该为: ****A*BC*DEF*G**** 同样的我们把所有的改完为; ****A*BC*DEF*G**** *******A*BC*DEF*G**** ****LKJFHG****KHJ***SDFGH****KJKJ*J*K*K*J***** *****OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ***** ***HJJKD***JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ********** **HKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ*** ***JHGDFXGGJH****JFHGFK**HKH**KJHKL***KLH*** ****UYKJDFARTQYW*****HFGUJ**KJHKJ**KJHK*** ***JKHILUHIUGCLKLKJGH*******HJGHG**KJH**JY*JH*M*HJH**** **JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK***** 这样改完以后,保存就行了,40分就拿到手了。 2.如第2题; #include N typedef struct { char num[10]; int s;} STREC;int fun(STREC *a,STREC *b,int l, int h){ return 1; } main(){ STREC s[N]={{“GA005”,85},{“GA003”,76},{“GA002”,69},{“GA004”,85},{“GA001”,96},{“GA007”,72},{“GA008”,64},{“GA006”,87},{“GA015”,85},{“GA013”,94},{“GA012”,64},{“GA014”,91},{“GA011”,90},{“GA017”,64},{“GA018”,64},{“GA016”,72}}; STREC h[N],tt;FILE *out; int i,j,n,low,heigh,t; printf(“Enter 2 integer number low & heigh : ”); scanf(“%d%d”, &low,&heigh); if(heigh< low){ t=heigh;heigh=low;low=t;} n=fun(s,h,low,heigh); printf(“The student's data between %d--%d :n”,low,heigh); for(i=0;i printf(“%s %4dn”,h[i].num,h[i].s); printf(“n”); out = fopen(“D:k0124010001out.dat”,“w”); n=fun(s,h,80,98); fprintf(out,“%dn”,n); for(i=0;i for(j=i+1;j if(h[i].s>h[j].s){tt=h[i];h[i]=h[j];h[j]=tt;} for(i=0;i fprintf(out,“%4dn”,h[i].s); fprintf(out,“n”); fclose(out);} 由于是有返回值的就在程序中填return 1;就同样运行,打开考生文件夹为; 发现没有in文件,只有out文件为; 1-858993460 很显然数据在程序中为: STREC s[N]={{“GA005”,85},{“GA003”,76},{“GA002”,69},{“GA004”,85}, {“GA001”,96},{“GA007”,72},{“GA008”,64},{“GA006”,87},{“GA015”,85},{“GA013”,94},{“GA012”,64},{“GA014”,91},{“GA011”,90},{“GA017”,64},{“GA018”,64},{“GA016”,72}};在看看题目是要我们找一个分数段的人数返回,和输出在这个分数段的分数,按从小到大的输出。那么我们可以在程序中看出为: n=fun(s,h,80,98);看出是找80到98这个分数段的人数及分数。 哪么从小到大的输出在这个分数段的分数从什么看出了?看一下语句: if(h[i].s>h[j].s){tt=h[i];h[i]=h[j];h[j]=tt;}看到了,如果大于就交换,哪么是不是把小的放在前面了? 在看看发printf语句为: fprintf(out,“%dn”,n)一般我们要看输出格式,如(”%4d”)格式就得注意空格换行等,那么我们可以在out文件中删除所有东西后写入如下: 8 85 85 85 87 90 91 94 96 我们可以看出8是这分数段的人数,其他为在这分数段的分数排序写法。做到这里点击记事本,文件、保存就行。 工作感受心得 我是体育部的部委李盟,在加入我们学校学生会体育部不久后加入前湖礼仪工作组,担任出礼仪的工作.在我出礼仪工作的工程中,收获很多,体会也很多 ,丰富了我在学生会的工作经验,同时也更加丰富了我在学生时代的人生经验,收获的不只是在学生会工作的工作经验,也有在以后到社会上工作的经验.有的人认为出礼仪的工作只是穿着西装站在那里,笔直的站着,但其实不是那样的.但是那样确是我们礼仪工作人员的基本要求.我们既然是出礼仪就要有当礼仪的样子.表现出你文明礼貌的一面.首先,你的形象,便反映出你对他人的尊敬.因而你的衣着要整洁,干净,领带要打正,穿西装的时候要穿深色的袜子,工作证要正戴在你的胸前........等等一些关于个人衣着的基本要求.接着就是要战好,欢迎前来的领导,老师,同学,这是我们体会最深的一个过程,就好象军训的时候站军姿一样,要笔直的站好体现出你的精神面貌,不可以东歪西晃,不可以有小动作,面部表情自然.这一站少的二十,三十分钟,多了就一两个小时,甚至有人站了六个小时一动不动,那种痛楚是可以想象到的.这是就考验我们个人的定力与毅力的时候了.我们被选出来参加礼仪工作,这既是一种荣誉,同时也是一份责任,甚至可以说这个时候,你不单是代表你个人,从某种程度上来说更加代表了我们学生会的工作人员的精神面貌.因此我们的坚持是必须的更加是值得的.我们的工作不单单是只有在入场和撤场的时候站在那里欢迎大家的到来和离开,再忙完了站岗后,我们有时还要担任维护现场秩序的职责.有时后来了好多人,在会上如果你讲一句,他讲一句即使是在讲的好的时候的喝彩也会使会场很乱,演讲的人可能会因为他人的不礼貌之处而受到影响.这时候就要我们出来维护现场的秩序,我们一定秉着公正的原则,用礼貌的方式去来维护现场的秩序,不能因为我和谁认识就庇护他,也不能因为他上级就畏惧他.有的时候有些人的反映方式会很难让人接受,我们仍然会礼貌的去告诉他因为我们是礼仪工作人员我们是学生会的工作人员,我们的目的就是为同学服务.在我工作的这几次的经历中,带给我的除了汗水,充实的感觉外,更多的是工作的宝贵的经验和我做事的原则.我很荣幸能够加入这一个工作队伍,带给我太多太多.那些宝贵的经验都将是我以后工作时宝贵财富,做事的指导.感谢这一平台所带给我的一切. 2010年二级建造师模拟试卷及答案 一、单项选择题(共20题,每题1分。每题的备选项中,只有1个最符合题意)场景(一) 一城市路道路结构为:路基为填方,填土高度为2—3m;路面为12%石灰土底基层150mm,石灰粉煤灰砂砾基层150mm,沥青混凝土面层(粗粒式60mm,中粒式40mm厚)合计100mm,共计410mm。因拆迁影响,路面工程需要在冬期组织施工。 根据场景(一),作答下列题目: 1、采用任何一种压实机械碾压土质路基,均应控制在该种土最佳含水量的±()以内压实。 A1% B2% C1.5% D2.5% 答案:B 解析:在最佳含水量情况下水稳定性最好。 2、城市主干路、快速路的上面层还需通过()试验来检验抗车辙能力。 A马歇尔试验 B高温车辙试验 C油石比试验 D残留度试验 答案:B 解析: 3、关于沥青混合料施工工艺要求,下面说法错误的是() A沥青混凝土面层集料的最大粒径宜从上往下逐渐增大,中、下面层沥青混合料集料的最大粒径不宜超过层厚的1/2。 B重要的沥青混凝土路面宜先修100—200m试验段,主要分试拌、试铺两个阶段,取得相应的参数。 C热拌沥青混合料路面施工结束后待自然冷却,表面温度低于600C后,方可允许车辆通行。 D热拌沥青混合料相邻两辐及上下层的横接缝施工应错开1m以上。 答案:C 解析:当混合料表面温度过高通车时,易形成车辙等病害。 4.道路工程前期地质调查时,开挖试坑深度应达到地下水位以下,当地下水位很深时,开挖深度不小于()。 A2m B2.5m C3m D3.5m 答案:A 5、下面不属于路面性能指标的是() A变形量 B温度稳定性 C抗滑能力 D噪声量 答案:A 解析:A属于路基性能指标之一。 6、城市主干路土质路基深度在0~80cm范围内,最低压实度应为()。 A90% B93% C95% D98% 场景(二)某市政桥梁工程,跨越该市一条主要河流,部分基础采用锤击沉桩,部分基础在河中,需要实施土围堰作业。承台为大体积砼,上部结构为跨径25m后张预应力混凝土箱梁。 根据场景(二),作答下列题目: 7、土围堰内坡脚与基坑顶边缘的距离根据河床土质及基坑开挖深度而定,但不得小于()。 A1m B1.1m C1.2m D1.5m 答案:A 解析:内坡脚与基坑边缘的距离主要是为了放置水泵等一些设备的需要。 8、土围堰的高度应施工期内可能出现的最高水位(包括浪高)()m A0.2 B0.5 C0.5~1.0 D0.5~0.7 答案:D 解析:高出可能出现的最高水位一定高度,以策安全。 9、沉人混凝土桩时,要求混凝土达到100%设计强度并具有()龄期。 A14d B21d C28d D36d 答案:C 解析:为避免砼桩头被击碎,除设置桩帽外,对桩还要进行设计强度和龄期的双控。 10、下面关于沉入桩的打桩顺序说法错误的是() A一般是由一端向另一端打 B密集群桩由中心向四边打 C先打浅桩,后打深桩 D先打坡顶,后打坡脚 答案:C 解析:如果改变顺序,则可能发生桩打不下去、折断等现象。 11.卸落支架和拱架,应()。 A纵向对称均衡卸落;横向同时一起卸落 B纵向同时一起卸落;横向对称均衡卸落 C纵向对称卸落;横向均衡卸落 D纵向同时卸落;横向一起卸落 答案:A 场景(三) 某热力隧道,长3.2km,断面尺寸为3.2×2.8m,埋深3.5m,采用喷锚暗挖法施工。隧道穿越砂砾层,需要降水作业。施工中,在距工作井48m时,发现开挖面砂砾层有渗水且土质松散,有塌方隐患。经有关人员研究,决定采用小导管注浆超前加固措施。 根据场景(三),作答以下题目: 12、小导管注浆宜采用() A水泥浆或水泥砂浆 B水泥浆或石灰浆 C混合砂浆 D触变泥浆 答案:A 13、根据场景所述地质条件,小导管注浆宜采用() A高压喷身注浆法 B渗入注浆法 C劈裂注浆法 D电动硅化注浆法 答案:B 14、下面不是喷锚暗挖法施工的要求的是() A管超前 B严注浆 C长开挖 D早封闭 答案:C 15、喷射砼应紧跟开挖面,应分段、分片、分层,A由下而上 B由上而下 C由前而后 D由后而前 答案:A 场景(四) 顺序进行。() 某给水厂采用地表水常规处理工艺流程。某项目经理部承建该给水厂的构筑物施工,其中清水池长32m、宽23m、高4.5m,清水池基础底标高为-6.00m,采用现浇钢筋混凝土结构,混凝土强度等级为C30。 因地下水位较高,需要采取降水措施,项目部拟采用基坑内明沟排水。 根据场景(四),作答下列题目: 16、采用明沟排水时,排水沟应设置在基坑的() A中间 B四边 C两边 D中间部位十字交叉 答案:B 17、排水沟底要始终保持比土基面低不小于()m A0.3 B0.5 C1.0 D1.5 答案:A 18.在给水厂的澄清处理工艺中,混凝的作用是()。 A去除水中的泥砂 B去除水中的细菌 C使水中悬浮物和胶体物质形成较大的絮状颗粒 D使水中有机物和有毒物质形成较大沉积颗粒 答案:C 19.清水池底板与柱的施工缝应设在()。 A底板表面 B柱的任意高度 C柱的1/2高度 D八字脚与柱的连接处 答案:A 20.池壁施工缝进行凿毛处理时,其根部的混凝土强度应至少达到()MPa。 A1.0 B1.5 C2.0 D2.5 答案:D 二、多选题 场景(五)某污水管道为φ1600mm钢筋混凝土管,一般地段采用开槽法施工,穿越道路部分采用顶管法施工。明挖管道完工后进行了闭水试验。 顶管工作井采用沉井。井壁厚600mm。沉井穿过的土层主要为黏土质砂土,采用不排水下沉。 由于沉井深度较大,沉井下沉施工中下沉困难,进度缓慢,项目部采取辅助方法助沉。顶管施工中,随着顶进距离的增加,顶力不断增长,但顶进至某里程时,顶力突然增加,并逐渐超过允许顶力。项目部停止顶进,寻找原因并采取有效措施进行处理。 根据场景(五),作答下列题目: 21、闭水试验时,有关要求表述正确的是() A应在管道回填后进行 B应在管道灌满水后12h进行 C应在管道灌满水后24h进行 D闭水试验的水位,应为试验段上游管道内顶以上2m E对渗水量的测定时间不少于30min 答案:ACDE 22、沟槽回填时,应符合的规定说法正确的是() A砖石、木块等杂物应清除干净 B采用井点降水时,其动水位应保持在槽底以下不小于0.5m C管道两侧和管顶以上500m范围内的回填材料,应由管槽两侧对称运入槽内,也可直接扔在管道上 D管道两侧和管道以上500m范围内,应采用轻夯压实 E采用木夯、蛙式夯时,应夯夯相连,采用压路机时,碾压的重叠宽度不小于200mm 答案:ABDE 23.沉井下沉困难时,可采取()助沉口 A射水下沉 B泥浆润滑套 C重锤夯击 D设置空气幕 E压重 答案:ABDE 24.顶管法与开槽相比,具有()等优点。 A不会影响交通 B施工成本低于开槽施工 C不必拆除地面障碍物 D土方开挖和填土工作量减少 E管道不必设置基础和管座 答案:ACDE 25、顶管现场一般需要设置吊装设备,施工中常用的是() A轮式起重机 B起重桅杆 C门式吊车 D架桥机 E电动葫芦 答案:ABC 场景(六)某市政集团公司中标承建一道路排水工程。该工程包括道路工程和一座跨河桥、φ1000mm的钢筋砼污水管道工程和绿化工程。 道路面层为24cm厚C30水泥砼,20cm厚水泥稳定碎石基层。 排水管道与其他管道在高程上有交叉,需要进行处理。 绿化工程主要是行车树和草坪建植。 根据场景(六),作答以下题目: 26、下列选项中,关于水泥砼路面的表述是正确的() A一次铺筑宽度小于路面宽度时,应设置带拉杆的平缝形式的作向施工缝 B横向施工缝尽可能选在缩缝或胀缝处 C对于特重及重交通等级的砼路面,横向胀缝、缩缝应设置传力杆 D切缝要做到宁早不晚,宁浅不深 E灌填缝料时,缝内应干净,缝壁应潮湿、粗糙,答案:ABC 27、下列选项中,关于水泥砼路面施工说法正确的是() A水泥仓库应覆盖或设置顶棚防雨,并应设置在地势较高处,严禁水泥受潮及浸水 B搅拌机应优先选用强制立轴式或双轴式搅拌机,C如发现砼有离析现象,应在铺筑时用铁锹拌均匀,可二次加水 D可在砼初凝后进行振捣 E抹面时严禁在面板砼洒水、撒水泥粉 答案:ABE 28、关于水泥稳定碎石基层说法正确的是() A碎石要先筛分成3~4个不同粒级,然后配合成规范要求的级配范围 B基层保湿养护不少于7d,养护期间可开放交通 C应选用初凝3h以上和终凝6h以上的普通、矿渣、火山灰硅酸盐水泥 D应用12t以上的压路机碾压 E严禁薄层贴补法找平 答案:ACDE 29、排水管道与交叉管道高程一致时的处理原则是() A软埋电缆让刚性管道 B压力管道让重力流管道 C大口径让小口径管道 D后敷设管道让已敷设管道 E小口径让大口径管道 答案:ABDE 30、草坪建植的方法有() A籽播 B喷播 C植生带 D铺植 E茎铺 答案:ABCD 三、案例分析题 (一)背景资料 某市政工程公司承建一道路工程,基层为180mm水泥稳定碎石,下面层为中粒式沥青砼,上面层为SMA沥青混凝土。该工程由四方工程咨询工程公司实施监理。 项目经理亲自参加了技术准备会议,并强调:“项目技术负责人作为工程质量的第一责任人,必须尽快主持编制项目质量计划,亲自做好技术交底工作。” 施工前项目技术负责人就工程特点、设计要求向施工人员进行了技术交底。 上面层施工中,以自卸汽车运输混合料,沥青混凝土摊铺机铺筑,为满足平整度的要求,采用钢绞线引导的高程控制方式,轮胎式压路机碾压。 面层横缝采用平接缝。接缝施工时,先用熨平板预热接缝。摊铺新的沥青混凝土后,由前一日施工结束停放在摊铺机后路面上的压路机顺路线方向从中心向外侧碾压。 施工完成后,施工单位及时向建设单位提交了工程竣工验收报告。竣工报告由项目经理签字并加盖公章。 问题: 1、项目经理强调内容中是否有不妥之处?说明理由。 2、项目技术负责人技术交底内容不全面,予以补充。 3、面层施工中存在多处违规操作,针对其中的问题给出正确的做法。 4、竣工验收报告签署程序是否全面?说明理由。 参考答案: 1、项目技术负责人作为工程质量的第一责任人,必须尽快主持编制项目质量计划不妥,应是项目经理作为工程质量的第一责任人主持编制项目质量计划。 2、补充如下:相关技术规范、规程要求及获准的施工方案,强调工程难点、技术要点及安全措施。 3、钢绞线引导的高程控制方式错误,应采用非接触式平衡梁;轮胎式压路机碾压错误,应采用振动压路机或钢筒式压路机碾压,不得采用轮胎式压路机。 压路机顺路线方向碾压错误,应顺横缝方向骑缝碾压,而后改为纵向碾压;从中心向外侧碾压错误,应从两侧向路中心碾压。 4、不全面。还应由施工单位有关负责人审核签字。另外,本工程实施监理,必须经总监理工程师签署意见。 (二)背景资料 某市政工程基础采用明挖基坑施工,坑壁采用网喷混凝土加固。A公司中标后把基坑部分擅自分包给不具备安全资质的B公司。B公司开挖施工时把大量挖土弃置于基坑顶部,建设单位及监理单位发现后对B公司劝阻,但B公司不予理会;基坑施工时为加快进度,B公司采用了一次开挖到底,再一起加固的方案。 在基坑施工至5m深时,基坑变形速率明显加快,坑顶处土层出现大量裂缝,B公司对此没有在意,继续加快开挖速度。不久,基坑出现坍塌凶兆,B公司马上组织民工抢险加固,但已经于事无补,基坑坍塌造成5死3伤的重大事故。项目经理处理了事故现场,2天后写了书面报告上报企业主管部门及有关单位,然后,按事故处理有关规定组成调查组开展调查。完成调查报告后,经项目经理签字,报企业安全主管部门。 问题 1、市政公用工程的风险源有哪些? 2.B公司采用的基坑开挖方案是否合乎技术要求?说明理由。 3.写出本工程基坑施工时存在的安全隐患。 4.引起本次事故的最主要原因是什么? 5.项目经理在基坑应急措施上犯了哪些重大错误最终导致了事故的发生? 参考答案: 1、火灾、中毒和窒息、坍塌、滑坡、触电、坠落、机械伤害、公路车辆伤害8种。 2、不符合要求。B公司采用了一次开挖到底,再一起加固的方案是错误的,应逐层开挖,逐层加固。 3安全隐患有: 1)深达5m的沟槽没有支撑。 2)B公司开挖施工时把大量挖土弃置于基坑顶部。 3)在基坑施工至5m深时,基坑变形速率明显加快,坑顶处土层出现大量裂缝 4、基坑出现坍塌凶兆,B公司马上组织民工抢险加固和将基坑部分擅自分包给不具备安全资质的B公司是引起本次事故的最主要原因。 5、基坑即将坍塌时,应以人身安全为第一要务,及早撤离现场。本工程出现坍塌凶兆,项目经理还组织人进入基坑抢险,是造成人员伤亡的一个重大错误。 (三)背景资料 某桥梁工程项目的建设单位与某一施工单位按照《建设工程施工合同(示范文本)》签订了桥梁施工合同。该桥梁上部结构为后张法预应力砼箱 梁。合同价款为2600万元,合同工期为200天。在合同中,建设单位与施工单位约定,每提前或推后工期一天,按合同价的万分之二进行奖励或扣罚。合同履行中发生如下事件: 事件1:该工程施工进行到100天时,经材料复试发现,甲方所供应的水泥板质量不合格,造成乙方停工待料19天。 事件2:在工程施工进行到150天时,由于甲方临时变更设计又造成部分工程停工16天。工程最终工期为220天。 事件3:在基础施工时,施工单位在采购钢筋之前按要求向监理工程师提交了质量保证资料,在监理员见证后取样送检,经法定检测单位检测证明钢筋性能合格,工程师经审查同意该批钢筋进场使用。但在基础工程钢筋验收时,工程师发现施工单位未做钢筋焊接性能试验,工程师责令承包单位在监理人员见证下取样送检,试验发现钢筋焊接性能不合格。经钢筋重新检验,最终确认是由于该批钢筋不合格而造成的钢筋焊接性能不合格。工程师随即发出不合格项目通知,要求承包单位拆除不合格钢筋工程,同时报告业主代表。承包单位以本批钢筋已经监理人员验收,不同意拆除,并提出若拆除,应延长工期10天,补偿直接损失40万元的索赔要求。 事件4:为保证吊车的安装作业,施工单位占用了一条非机动车道,选择在夜间时段,自行封路后进行构件吊装作业。 事件5:张拉上部预应力连续梁时,因考虑到属关键工作,项目经理部经研究,决定预应力筋张拉工作由质检员主持,张拉作业人员必须经培 训考核合格后方可上岗。在钢绞线张拉时,有一根断丝且不超过全断面的1%,因工期紧,没有处理,即锚固灌浆了。 事件6:锚固完毕经检验合格后用电弧焊切除端头多余预应力筋,外露长度不小于30mm,锚具用封端砼保护。 问题 1、施工单位在第一次停工后10天,向建设单位提出了索赔要求,索赔停工损失人工费和机械闲置费等共6.8万元;第二次停工后15天施工单位向建设单位提出停工损失索赔7万元。在两次索赔中,施工单位均提交了有关文件作为证据,情况属实。此项索赔是否成立? http://www.xiexiebang.com 2、在工程竣工结算时,施工单位提出工期索赔35天。同时,施工单位认为工期实际提前了15天,要求建设单位奖励7.8万元。建设单位认为,施工单位当时未要求工期索赔,仅进行停工损失索赔,说明施工单位已默认停工不会引起工期延长。因此,实际工期延长20天,应扣罚施工单位10.4万元。此项索赔是否成立? 3、事件3中,施工单位的索赔是否合理?请说明理由。 4、事件4中,项目部采取的措施是否正确?如不正确,请指出正确作法。 5、请指出事件5中预应力张拉的错误之处,并改正。钢绞线张拉后断丝未经处理,是否正确。 6、请指出事件6中切除端头多余预应力筋错误之处,并指出正确做法。 参考答案: 1、此项索赔成立。因为这是建设单位的责任。施工单位提出索赔的理由正当,并提供了当时的证据,情况属实。同时,施工单位提出索赔的时限未超过索赔合同规定的28天时限。 2、此项索赔不成立。因为施工单位提出工期索赔时间已超过合同约定的时间,而建设单位扣罚理由充分,符合合同规定;罚款金额计算符合合同规定。故应从工程结算中扣减工程应付款10.4万元。 3、不合理。因为施工单位采购了不合格的材料,这是施工单位的责任。 4、不正确。项目部采取的措施不合伙关于占用或挖掘城市道路的规定;因特殊情况需要临时占用城市道路时,须经市政工程行政主管部门和公安交通主管部门的批准。 5、预应力筋张拉工作由质检员主持错误,应由项目技术负责人主持。钢绞线张拉后断丝未经处理是正确的。因为符合规范不大于1%且不大于1根的规定。 6、用电弧焊切除端头多余预应力筋是错误的,应用砂轮锯、切断机等机械方法切割。www.xiexiebang.com (四)背景资料 某施工单位与建设单位按《建设工程施工合同(示范文本)》签订了固定总价施工承包合同,合同工期390天,合同总价5000万元。 施工前施工单位向工程师提交了施工组织设计和施工进度计划。 该工程在施工过程中发生了如下事件: (1)因地质勘探报告不详,出现图纸中未标明的地下障碍物,处理该障碍物导致A工作持续时间延长10天,增加人工费2万元、材料费4万元、机械费3万元。 (2)基坑开挖时因边坡支撑失稳坍塌,造成B工作持续时间延长15天,增加人工费1万元、材料费1万元、机械费2万元。 (3)因不可抗力而引起施工单位的供电设施发生火灾,使工作C持续时间延长10天,增加人工费1.5万元、其他损失费用5万元。 (4)结构施工阶段因建设单位提出工程变更,导致施工单位增加人工费4万元、材料费6万元、机械费5万元,工作E持续时间延长30天。 (5)因施工期间钢材涨价而增加材料费7万元。 针对上述事件,施工单位按程序提出了工期索赔和费用索赔,编写了索赔报告,索赔报告的内容有:编制说明和附件(与索赔费用或工期索赔 有关的各种往来文件,包括承包方发出的与工期和费用索赔有关的证明材料及详细计算资料)。 问题: 1、按照施工进度计划,确定该工程的关键线路和计算工期,并说明按此计划该工程能否按合同工期要求完工。 2、对于施工过程中发生的事件,施工单位是否可以获得工期和费用补偿?分别说明理由。 3、施工单位可以获得的工期补偿是多少天?说明理由。 4、施工单位租赁土方机械用于工作A、B,日租金为1500元/天,则施工单位可以得到的土方租赁机械的租金补偿费用是多少?为什么? 5、索赔报告的内容不完整,请补充。 参考答案: 1、关键线路:①→③→⑤→⑥(或B→E→G)。计算工期为390天,按此计划可以按合同工期要求完工。 2、事件1:不能获得工期补偿,因为工作A是延期没有超过总时差;可以获得费用补偿,因为图纸未标明的地下障碍物属于建设单位的风险。 事件2:不能获得工期和费用补偿,因为基坑边坡支撑失稳属于施工单位施工方案有误,应由承包商承担该风险。 事件3:能获得工期补偿,因应由建设单位承担不可抗力的工期风险;不能获得费用补偿,因不可抗力发生的费用应由双方分别承担各自的费用损失。 事件4:能获得工期和费用补偿,因为建设单位工程变更属建设单位的责任。 事件5:不能获得费用补偿。因该工程是固定总价合同,物价上涨风险应由施工单位承担。 3、施工单位可获得的工期延期补偿为30天,因为考虑建设单位应承担责任或风险的事件1工作A延长10天;事件3中的工作C延长10天,事件4中的工作E延长30天,新的计算工期为420天,(420-390)=30天。 4、施工单位应得到10天的租金补偿,补偿费用为10天×1500元/天=1.5万元,因为工作A的延长导致该租赁机械在现场的滞留时间增加了10天,工作B不予补偿。第二篇:2018计算机二级C语言考试真题汇总(本站推荐)
第三篇:二级C语言上机题做法小结
第四篇:二级C语言上机题库_南开100题
第五篇:2010二级建造师真题试卷及答案