求四川省历年C语言二级真题或者模拟题

作者&投稿:睢丽 (若有异议请与网页底部的电邮联系)
谁有四川省计算机C语言二级考试的真题或者模拟题?多给我几套最好了,要有答案的。要多少分您说,只要我有~

2007年4月全国计算机等级考试二级笔试试卷
C语言程序设计
(考试时间120分钟,满分100分)

一、选择题((1)—(10)每小题2分,(11)—(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是(B)
A)算法的效率只与问题的规模有关,而与数据的存储结构无关
B)算法的时间复杂度是指执行算法所需要的计算工作量
C)数据的逻辑结构与存储结构是一一对应的
D)算法的时间复杂度与空间复杂度一定相关

(2)在结构化程序设计中,模块划分的原则是(D)
A)各模块应包括尽量多的功能
B)各模块的规模应尽量大
C)各模块之间的联系应尽量紧密
D)模块内具有高内聚度、模块间具有低耦合度

(3)下列叙述中正确的是(A)
A)软件测试的主要目的是发现程序中的错误
B)软件测试的主要目的是确定程序中错误的位置
C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作
D)软件测试是证明软件没有错误

(4)下面选项中不属于面向对象程序设计特征的是(C)
A)继承性
B)多态性
C)类比性
D)封装性

(5)下列对队列的叙述正确的是(D)
A)队列属于非线性表
B)队列按“先进后出”原则组织数据
C)队列在队尾删除数据
D)队列按“先进先出”原则组织数据

(6)对下列二叉树
A



B C



D E F X



Y Z


进行前序遍历的结果为(C)



A) DYBEAFCZX

B) YDEBFZXCA

C) ABDYECFXZ

D) ABCDEFXYZ


(7) 某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为(A)

A) n+1
B) n-1
C) 2n
D) n/2



(8) 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是(B)

A) 并
B)交
C)投影
D)笛卡儿乘积



(9)在E-R图中,用来表示实体之间联系的图形是(C)

A) 矩形
B)椭圆形
C)菱形
D)平行四边形

(10)下列叙述中错误的是(A)

A) 在数据库系统中,数据的物理结构必须与逻辑结构一致

B) 数据库技术的根本目标是要解决数据的共享问题

C) 数据库设计是指在已有数据库管理系统的基础上建立数据库

D)数据库系统需要操作系统的支持

(11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的(C)

A)正当性
B)可行性
C)确定性
D)有穷性


(12)下列叙述中错误的是(D)

A)计算机不能直接执行用C语言编写的源程序

B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件

C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

D)后缀为.obj和.exe的二进制文件都可以直接运行



(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B)

A)大写字母
B)连接符
C)数字字符
D)下划线



(14)以下叙述中错误的是(C)

A)C语言是一种结构化程序设计语言

B)结构化程序有顺序、分支、循环三种基本结构组成

C)使用三种基本结构构成的程序只能解决简单问题

D)结构化程序设计提倡模块化的设计方法



(15)对于一个正常运行的C程序,以下叙述中正确的是(A)

A)程序的执行总是从main函数开始,在main函数结束

B)程序的执行总是从程序的第一个函数开始,在main函数结束

C)程序的执行总是从main函数开始,在程序的最后一个函数中结束

D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

(16)设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)(D)
A)10□X□20□Y〈回车〉
B)10□X20□Y〈回车〉
C)10□X〈回车〉
D)10X〈回车〉

20□Y〈回车〉 20Y〈回车〉

(17)若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是(C)
A)sqrt(abs(n^x+e^x))
B) sqrt(fabs(pow(n,x)+pow(x,e)))
C)sqrt(fabs(pow(n,x)+exp(x)))
D) sqrt(fabs(pow(x,n)+exp(x)))


(18)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A)
A)k++
B)k+=1
C)++k
D)k+1

(19)有以下程序,其中%u表示按无符号整数输出(B)

main()

{unsigned int x=0xFFFF; /* x的初值为十六进制数 */

printf(“%u
”,x);

}
程序运行后的输出结果是
A)-1
B)65535
C)32767
D)0xFFFF

(20)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是(C)

A)if(x++);
B)if(x>y&&y!=0);

C)if(x>y) x- -
D)if(y<0) {;}

else y++; else x++;

(21)以下选项中,当x为大于1的奇数时,值为0的表达式(D)

A)x%2==1
B)x/2
C)x%2!=0
D)x%2==0



(22)以下叙述中正确的是(C)

A)break语句只能用于switch语句体中

B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环

C)break 语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句的作用相同



(23)有以下程序(A)

main()

{int k=5,n=0;

do

{switch(k)

{case1: case3:n+=1; break;

default;n=0;k--;

case2: case4:n+=2;k--;break;

}

printf(“%d”,n);

}while(k>0&&n<5);

}

程序运行后的输出结果是
A)235
B)0235
C)02356
D)2356



(24)有以下程序

mian()

{int i,j;

for(i=1;i<4;i++)

{for(j=i;j<4;j++) printf(“%d*%d=%d “,i,j,i*j);

printf(“
”);

}

}

程序运行后的输出结果是(B)
A) 1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=3

2*1=2 2*2=4 2*2=4 2*3=6

3*1=3 3*3=9


C) 1*1=1 D) 1*1=1

1*2=2 2*2=4 2*1=2 2*2=4

1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9



(25)以下合法的字符型常量是(A)

A)”\x13”
B)”\018”
C)”65”
D)”


(26)在C语言中,函数返回值的类型最终取决于(A)

A)函数定义时在函数首部所说明的函数类型

B)return语句中表达式值的类型

C)调用函数时主函数所传递的实参类型

D)函数定义时形参的类型



(27)已知大写字母A的ASCII码是65,小写字母aASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是(D)

A)c=(c-A)&+’a’
B)c=c+32

C)c=c-‘A’+’a’
D)c=(‘A’+c)&-‘a’



(28)有以下函数

int fun(char *s)

{char *t=s;

while(*t++);

return(t-s);

}

该函数的功能是(B)

A)比较两个字符的大小
B)计算s所指字符串占用内存字节的个数

C)计算s所指字符串的长度
D)将s所指字符串复制到字符串t中



(29)设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是(D)
A)float *p=1024;
B)int *p=(float x);

C)float p=&x;
D)float *P=&x;



(30)有以下程序

#include

main()

{int n,*p=NULL;

*p=&n;

printf(“Input n:”); scanf(“%d”,&p); printf(“output n:”); printf(“%d
”,p);

}

该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是(A)

A)int n,*p=NULL;
B)*p=&n;
C)scanf(“%d”,&p)
D)printf(“%d
”,p);

(31)以下程序中函数f的功能是:当flag为1时,进行有由小到大排序;当flag为0时,进行由大到小排序。

void f(int b[],int n,int flag)

{int i,j,t;

for(i=0;i

for (j=i+1;j

if(flag?b[i]>b[j]:b[i]

}

main()

{int a[10]={5,4,3,2,1,6,7,8,9,10},i;

f(&a[2],5,0); f(a,5,1);

for(i=0;i<10;i++) printf(“%d,”a[i]);

}

程序运行后的输出结果是(B)

A)1,2,3,4,5,6,7,8,9,10,
B)3,4,5,6,7,2,1,8,9,10,

C)5,4,3,2,1,6,7,8,9,10,
D)10,9,8,7,6,5,4,3,2,1,



(32)有以下程序

void f(int b[])

{int i;

for(i=2;i<6;i++) b[i]*=2;

}

main()

{int a[10]={1,2,3,4,5,6,7,8,9,10},i;

f(a);

for(i=0;i<10;i++) printf(“%d,”,a[i]);

}

程序运行后的输出结果是(B)

A)1,2,3,4,5,6,7,8,9,10,
B)1,2,6,8,10,12,7,8,9,10

C)1,2,3,4,10,12,14,16,9,10,

D)1,2,6,8,10,12,14,16,9,10,



(33)有以下程序

typedef struct{int b,p;}A;

void f(A c) /*注意:c是结构变量名 */

{int j;

c.b+=1; c.p+=2;

}

main()

{int i;

A a={1,2};

f(a);

printf(“%d,%d
”,a.b,a.p);

}

程序运行后的输出结果是(D)

A)2,3
B)2,4
C)1,4
D)1,2



(34)有以下程序

main()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;

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

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

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/

for(i=0;i<4;i++)printf(“%d,”,a[i][j]);

}

程序运行后的输出结果是(A)

A)1,6,5,7,
B)8,7,3,1,
C)4,7,5,2,
D)1,6,2,1,



(35) 有以下程序

main()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t;

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

for(k=i+i;k<4;k++) if(a[i][i]

for(i=0;i<4;i++)printf(“%d,”,a[0][i]);

}

程序运行后的输出结果是(B)
A)6,2,1,1,
B)6,4,3,2,
C)1,1,2,6,
D)2,3,4,6,

(36) 有以下程序

void f(int *q)

{int i=0;

for( ; i<5;i++)(*q)++;

}

main()

{int a[5]={1,2,3,4,5},i;

f(a);

for(i=0;i<5;i++)printf(“%d,”,a[i]);

}

程序运行后的输出结果是(B)

A)2,2,3,4,5,
B)6,2,3,4,5,
C)1,2,3,4,5,
D) 2,3,4,5,6,



(37) 有以下程序

#include

main()

{char p[20]={‘a’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”;

strcpy(p+strlen(q),r); strcat(p,q);

printf(“%d%d
”,sizeof(p),strlen(p));

}

程序运行后的输出结果是(C)

A)20 9
B)9 9
C)20 11
D)11 11



(38) 有以下程序

#include

main()

{char p[20]={‘a’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”

strcat(p,r); Strcpy(p+strlen(q),q);

Printf(“%d
”,sizeof(p));

}

程序运行后的输出结果是(B)

A)9
B)6
C)11
D)7



(39) 有以下程序

#include

main()

void f(char p[][10], int n ) /* 字符串从小到大排序 */

{ char t[10]; int i,j;

for(i=0;i

for(j=i+1;j

if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); }

}

main()

{char p[5][10]={“abc”,”aabdfg”,”abbd”,”dcdbe”,”cd”};

f(p,5);

printf(“%d
”,strlen(p[0]));

}

程序运行后的输出结果是(C)

A) 2
B) 4
C) 6
D) 3



(40) 有以下程序

void f(int n, int *r)

{int r1=0;

if(n%3==0) r1=n/3;

else if(n%5==0) r1=n/5;

else f(--n,&r1);

*r=r1;

}

main()

{int m=7,r;

f(m,&r); printf(“%d
,r”);

}

程序运行后的输出结果是(A)

A) 2
B) 1
C)3
D) 0

(41)有以下程序

main(int argc,char *argv[])

{int n=0,i;

for(i=1;i n=n*10+*argv[i]-‘0’;

printf(“%d
”,n);

}

编译连接后生成可执行文件tt.exe,若运行时输入以下命令行

tt 12 345 678

程序运行后的输出结果是(D)

A) 12
B) 12345
C)12345678
D) 136



(42) 有以下程序

int a=4;

int f(int n)

{int t=0; static int a=5;

if(n%2) {int a=6; t+=a++;}

else {int a=7 ;t+=a++;}

return t+a++;

}

main()

{int s=a,i=0;

for(;i〈2;i++) s+=f(i);

printf (“%d
”,s);

}

程序运行后的输出结果是(B)

A)24
B)28
C)32
D)36



(43) 有一个名为init.txt的文件,内容如下:

#define HDY(A,B) A/B

# define PRINT(Y) Printf(“y=%d
.,Y)

有以下程序

#include “init.txt”

main()

{int a=1,b=2,c=3,d=4,k;

K=HDY(a+c,b+d);

PRINT(K);

}

下面针对该程序的叙述正确的是(D)

A)编译有错
B)运行出错

C)运行结果为 y=0
D) 运行结果为 y=6



(44) 有以下程序

main()

{char ch[]=“uvwxyz”,*pc;

Pc=ch; printf(“%c
”,*(pc+5));

}

程序运行后的输出结果是(A)

A)z
B)0
C)元素ch[5]的地址
D)字符y的地址



(45) 有以下程序

struct S {int n; int a[20];};

void f(struct S *P)

{int i,j,t;

for(i=0;in-1;i++)

for(j=i+1;jn;j++)

if(p->a[i]>p->a[j]) { t=p->a[i]; p->a[i]=p->a[j]; p->a[j]=t; }

}

main()

{int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};

f(&s);

for(i=0;i printf(“%d”,s.a[i]);

}

程序运行后的输出结果是(A)

A)1,2,3,4,5,6,7,8,9,10,
B)10,9,8,7,6,5,4,3,2,1,

C)2,3,1,6,8,7,5,4,10,9,
D)10,9,8,7,6,1,2,3,4,5,

(46) 有以下程序

struct S{ int n; int a[20]; };

void f(int *a,int n)

{int i;

for(i=0;i a[i]+=i;

}

main()

{int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};

f(s.a, s.n);

for(i=0;i printf(“%d”,s.a[i]);

}

程序运行后的输出结果是(A)

A)2,4,3,9,12,12,11,11,18,9,
B)3,4,2,7,9,8,6,5,11,10,

C)2,3,1,6,8,7,5,4,10,9,
D)1,2,3,6,8,7,5,4,10,9,



(47) 有以下程序段

typedef struct node { int data; struct node *next; } *NODE;

NODE p;

以下叙述正确的是(C)

A)p是指向struct node结构变量的指针的指针

B)NODE p;语句出错

C)p是指向struct node结构变量的指针

D)p是struct node结构变量



(48)有以下程序

main()

{unsigned char a=2,b=4,c=5,d;

d=a|b; d&=c; printf(“%d
”,d); }

程序运行后的输出结果是(B)

A)3
B)4
C)5
D)6



(49)有以下程序

#include

main()

{FILE *fp; int k,n,a[6]={1,2,3,4,5,6};

fp=fopen(“d2.dat”,”w”);

fprintf(fp,”%d%d
”,a[0],a[1],a[2]); fprintf(fp, “%d%d%d
”,a[3],a[4],a[5]);

fclose(fp);

fp=fopen(“d2.dat”,”r”);

fscanf(fp, “%d%d”,&k,&n); printf(“%d%d
”,k,n);

fclose(fp);

}

程序运行后的输出结果是(D)

A)1 2
B)1 4
C)123 4
D) 123 456



(50)有以下程序

#include

main ()

{FILE *fp; int i,a[6]={1,2,3,4,5,6k};

fp=fopen(“d3.dat”,”w+b”);

fwrite(a,sizeof(int),6,fp);

fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/

fread(a,sizeof(int),3,fp); fclose(fp);

for(i=0;i<6;i++) printf(“%d,”,a[i]);

}

程序运行后的输出结果是(A)

A)4,5,6,4,5,6,
B)1,2,3,4,5,6,
C)4,5,6,1,2,3,
D)6,5,4,3,2,1,

二.填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须写完整.

(1) 在深度为7的满二叉树中,度为2的结点个数为___63____。



(2) 软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于__黑箱(或黑盒) 测试。



(3) 在数据库系统中,实现各种数据管理功能的核心软件称为 __数据库管理系统__。



(4) 软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 开发_____阶段。



(5)在结构化分析使用的数据流图(DFD)中,利用数据字典 对其中的图形元素进行确切解释。


(6)执行以下程序后的输出结果是 a=14 。


main()

{int a=10;

a=(3*5,a+4); printf(“a=%d
”,a);

}



(7) 当执行以下程序时,输入1234567890,则其中while循环体将执行 0 次。

#include

main()

{char ch;

While((ch=getchar())==’0’) printf(“#”);

}



(8) (8)以下程序的运行结果是 m=4 k=4 i=5 k=5 。

int k=0;

void fun(int m)

{ m+=k; k+=m; printf(“m=%d
k=%d ”,m,k++);}

main()

{ int i=4;

fun(i++); printf(“i=%d k=%d
”,i,k);

}



(9) (9)以下程序的运行结果是 #& 。

main()

{int a=2,b=7,c=5;

switch(a>0)

{case 1:switch(b<0)

{case 1:switch(“@”); break;

Case 2: printf(“!”); break;

}

case 0: switch(c==5)

{ case 0: printf(“*”); break;

case 1: printf(“#”); break;

case 2: printf(“$”); break;

}

default : printf(“&”);

}

printf(“
”);

}



(10)以下程序的输出结果是 9

# include

main()

{ printf(“%d
”,strlen(“IBM
012\1\\”));

}

(11)已定义char ch=”$”;int i=1,j;执行j=!ch&&i++以后,i的值为1



(12)以下程序的输出结果是 5 4

# include

main()

{ char a[]={‘\1’,’\2’,’\3’,’\4’,’\0’};

printf(“%d %d
”,sizeof(a),srelen(a));

}



(13)设有定义语句:int a[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为 0



(14)以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{int x[10],a[9],I;

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

scanf(“%d”,&x[i]);

for( i=1 ;i<10;i++)

a[i-1]=x[i]+ x[i-1] ;

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

printf(“%d”,a[i]);

printf(“
”);



(15) 以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上,请填空:

main()

{int x,y,z,max,*px,*py,*pz,*pmax;

scanf(“%d%d%d”,&x,&y,&z);

px=&x;

py=&y;

pz=&z;

pmax=&max;

*pmax=*px(或*pmax=x) ;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

printf(“max=%d
”,max);

}


(16)以下程序的输出结果是 10

int fun(int*x,int n)

{if(n==0)

return x[0];

else return x[0]+fun(x+1,n-1);

}

main()

{int a[]={1,2,3,4,5,6,7};

printf(“%d
”,fun(a,3));

}


(17)以下程序的输出结果是 35

# include

main()

{char *s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;

*s2=20;

m=*s1+*s2;

printf(“%d
”,m);

}


(18)设有说明

struct DATE{int year;int month; int day;};

请写出一条定义语句,该语句定义d为上述结构体变量,并同时为其成员year、month、day 依次赋初值2006、10、1: struct DATA d={2006,10,1};


(19) 设有定义:FILE *fw;,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。

fw=fopen(“readme.txt”, "a" )





2007年4月全国计算机等级考试二级C语言笔试试题答案

一、选择题:
1-5 24134

6-10 31321

11-15 34231

16-20 43113

21-25 43421

26-30 14241

31-35 22412

36-40 23232

41-45 42411

46-50 13241


二、填空题:

1. 63

2,墨盒
3.DBNS
4,开发
5,数据 字典
6,a-14
7,0
8,无答案
9,# 与号
10,9
11,1
12,5_4
13,13 0
14,i=1
15,X[i-1]
16,无答案
17,10
18,40
19,无答案
20,"20a"

一、是非判断题(每小题1分,共10分) 1.数据元素是数据的基本单位,数据项是数据的最小单位。 ( 1 ) 2.栈是特殊的线性表,须用一组地址连续的存储单元来存储其元素。 ( 2 ) 3.引入虚拟存储技术后,逻辑内存总容量是由地址总线的位数确定的。 ( 3 ) 4.编译程序是一种常用的应用软件。 ( 4 ) 5.顺序文件和链接文件的长度都可以动态变化。 ( 5 ) 6.在文件系统中彩目录管理文件。 ( 6 ) 7.允许多用户在其终端上同时交互地使用计算机的操作系统称为实时系统。 ( 7 ) 8.程序、数据、和程序控制块是构成一个进程的三要素。 ( 8 ) 9.黑盒测试时,既要考虑程序的内部逻辑结构又要考虑其外部特性。 ( 9 ) 10.软件的总体设计和详细设计都要用PAD图形工具。 ( 10 )二、单项选择题(每小题1分,共5分) 1.允许用户把若干作业提交计算机系统集中处理的操作系统称为( 11 )。11(A)分时操作系统 (B)实时操作系统 (C)网络操作系统 (D)批处理操作系统 2.分配到必要资源并获得了处理机时的进程的状态称为( 12 )。12(A)就绪状态 (B)执行状态 (C)等待状态 (D)阻塞状态 3.利用通道技术可以在( 13 )之间直接交换数据。13(A)内存与CPU (B)CPU与外设 (C)内存与外设 (D)内存、CPU和外设三者 4.以下的准则中哪个不是软件设计的准则( 14 )。14(A)编程语言选择准则 (B)信息屏蔽准则 (C)结构化和模块化准则 (D)抽象准则 5.有一数列:97 65 76 13 29 49 58 经过一趟排序后得到:65 97 13 76 29 49 58 请问使用的是何种排序方法( 15 )。15(A)简单插入排序 (B)冒泡排序 (C)2路归并排序 (D)快速排序 C与C++语言程序设(共85分)一、单项选择题(每小题1分,共10分) 1.定义如下枚举类型:enum Day{Monday,Tuesday,Wednesday,Thursday,Friday=2};则下列语句正确的是 ( 16 )。16 (A) 表达式Wednesday==Friday的值是true(B) enum Day day; day=3;(C) enum Day day; day=Tuesday-3;(D) enum Day day; day=Monday+10; 2.下列程序片段的输出结果是( 17 )。int m=4;do { printf("%d,",m-=3); }while(!(--m));17(A)1 (B)1,-3, (C)3,0 (D)死循环 3.执行下列程序片段时的输出结果是( 18 )。int x,y;x=3;y=5;printf("%d",x%=(y/=2) );18(A)3 (B)2 (C)1 (D)0 4.对于下述程序,判断正确的是( 19 )。# include void f(int *p){ *p=10; }int *p;void main(){ f(p); printf("%d",(*p)++ );}19 (A) 输出的值是随机值 (B) 运行时出错 (C) 输出值为10 (D) 输出值为11 5.下列程序运行的结果是( 20 )。# define FU(y) 2.8+y# define PR(a) printf("%d",(int)(a))# define PRINT(a) PR(a);# include void main(){ int x=2; PRINT( FU(5) * x );}20(A)12 (B)14 (C)13 (D)15 6.下列程序运行的结果是( 21 )。# include void main(){ int a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+4; printf("%d",*++p); printf("%d",++*p);}21 (A)4,3 (B)4,6 (C)5,5 (D)4,5 7.关于对类要领的描述中,错误的是( 22 )。22 (A) 类就是C语言中的结构类型(B) 类是创建对象的样板 (C) 类是具有共同行为的若干对象的统一描述体(D) 类是抽象数据类型的实现 8.已知int a=9,b=4; 将a-b的值输出显示到屏幕上,下列各种实现方法中,正确的是( 23 )。23 (A) coutint fun(char *str){ int n=0; while(*str>='0' && *str<='9') { n=n*10+*str-'1'; str++; } return n;}void main(){ printf("%d
",fun("567.89")); }25 (A)89 (B)567.89 (C)567 (D)456 四川省计算机等级考试二级C语言笔试题(第二十次)二
2009-03-29 15:11:39 二、读程序回答问题(每个选择3分,共45分)。 1.有下列程序:# include void main(){ int a,b,c,x; a=b=c=0; for(int i=0;i>x; switch(x%3) { case 0: a+=x; break; case 1: b+=x; break; case 2: c+=x; break; } } coutvoid main(){

四川省普通高等学校计算机应用知识和能力
第二十八次等级考试
二级(C与C++语言) 笔 试 试 卷
时间: 2008年4月 19 日
上午 9:00—11:00
第一部分
软件技术基础
(共15分)
一、是非判断题(每小题1分,共10分)
( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )
1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。 ( 1 )
2. 数据在计算机内存中的表示是指数据的存储结构。 ( 2 )
3. Windows是多用户多任务操作系统。 ( 3 )
4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。 ( 4 )
5. 链表可以随机访问任意一个结点,而顺序表则不能。 ( 5 )
6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。 ( 6 )
7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 )
8. 中断控制方式适用于外存同CPU之间进行大量数据交换。 ( 8 )
9. 提供没有错误的程序是提高软件的可维护性的基本措施。 ( 9 )
10.软件结构是以指令为基础而组成的一种控制层次结构。 ( 10 )

二、选择题(每小题1分,共5分)
1. 数据流图是用于描述结构化方法中( 11 ) 工作阶段的工具。
11 (A) 可行性分析 (B) 程序编码
(C) 详细设计 (D) 需要分析
2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是( 12 )。
12 (A) 1,4,3,2 (B) 3,1,4,2
(C) 2,3,4,1 (D) 3,4,2,1
3. 任何两个并发进程之间( 13 )。
13 (A) 可能存在同步或互斥关系 (B) 一定存在同步关系
(C) 一定彼此独立无关 (D) 一定存在互斥关系
4. 以下的哪个特征不是分时操作系统的主要特征( 14 )。
14 (A) 分时性 (B) 独占性
(C) 交互性 (D) 多路性
5. 需求分析中开发人员主要从用户那里了解 ( 15 )。
15 (A) 软件的维护 (B) 软件的结构
(C) 软件做什么 (D) 软件的测试

第二部分
C与C++语言程序设计
(共85分)
一、单项选择题 ( 每小题1分,共10分 )
1. C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是( D) 。
16 (A) 增加了一些新的运算符 (B) 允许函数设置缺省参数
(C) 规定函数说明符必须用原型 (D) 引进了类和对象的概念
2. 决定C++语言中函数的返回值类型的是( B )。
17 (A) return语句中的表达式类型
(B) 在定义该函数时所指定的数据类型
(C) 调用该函数时的主调函数类型
(D) 调用该函数时系统随机产生的类型
3. C语言中运算对象必须是整型的运算符是 ( A )。
18 (A) % (B) / (C) = (D) 《=
4. 若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是( C )。
19 (A) EOF (B) -1 (C) 1 (D) NULL
5. 已知:int a=15,b=16; 则表达式(a&b)&&br的结果是( A )。
20 (A) 1 (B) 0 (C) 16 (D) 31
6. 已知:int arr[10]; 则对arr数组元素的正确引用是( D )。
21 (A) arr[10] (B) arr[3.5] (C) arr(5) (D) arr[10-10]
7. 下列程序中,循环结束后b的值是( C )。
vpod main()
{
int a=1,b=10;
do
{
b-=a;
a++;
}while(b-->10);

}
22 (A) -1 (B) -2 (C) 8 (D) 9
8. 以下程序的输出结果是 ( 23 )。
# define M(x,y,z) x*y+z
main()
{
int a=1,b=2,c=3;
printf("%d\n",M(a+b,b+c,c+a));
}
23 (A) 12 (B) 15 (C) 17 (D) 19
9. 下面程序把数组元素中的最大值放入a[0]中,则在if语句下划线的条件表达式应填入的是 ( 24 )。
main()
{
int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i;
for(i=0;i<10;i++,p++)
if ( ) *a=*p;
printf("%d",*a);
}
24 (A) p>a (B) *p>a[0] (C) *p>*a[0] (D) *p[0]>a[0]
10. 若在下面程序段中使指针变量p指向一个存储整型数据的动态存储单元,则在下划线处应填入 ( 25 ) 。
int *p;
p= malloc(sizeof(int));
25 (A) int (B) int * (C) (* int) (D) (int *)

二、读程序回答问题 ( 每个选择3分,共45分 )
1. 读程序写出程序运行结果。
# include <stdio.h>
void fun(char *s,char t)
{
while(*s)
{ if(*s==t) *s=t-'a'+'A';
s++;
}
}
void main()
{
char s[100]="abcddfefdbd",c='d';
fun(s,c);
printf("%s\n",s);
}
程序运行后的输出结果是( B )。
26 (A) ABCDDFEFDBD (B) abcDDfefDbD (C) abcAAfefAbA (D) Abcddfefdbd
2. 读程序并回答问题。
# include <stdio.h>
void fun(int a[],int n)
{
int i,t;
for(i=0;i<n/2;i++)
{
t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;
}
}
void main()
{
int b[10]={1,2,3,4,5,6,7,8,9,10};
int i,s=0;
fun(b,8);
for(i=6;i<10;i++) s+=b[i];
printf("%d\n",s);
}
(1)函数fun的功能是( A )。
27 (A) 将数组a的前n个元素逆置 (B) 对数组元素进行升序排列
(C) 交换数组第一个元素和最后一个元素 (D) 对数组元素进行降序排列
(2)程序的运行结果是( A )
28 (A) 34 (B) 30 (C) 22 (D) 10
3. 读程序,回答问题
# include <iostream.h>
void main()
{
int a=0,x=0;
for(;!x&&a<10;a++)
{ a++;
x++;
}
cout<<a<<endl;
}
程序的运行结果为:( D )。
29 (A) 10 (B) 4 (C) 3 (D) 2
4. 读程序回答问题。
# include <stdio.h>
void fun(char *str)
{
int i,j=0;
for(i=0;str[i]!='\0';i++)
if(str[i]!=' ') str[j++]=str[i];
s[j]='\0';
}
void main()
{
char str[80];
int n;
printf("Input a string:");
gets(str);
fun(str);
printf("%s\n",str);
}
程序运行时输入字符串asd_ab_123(注:用“_”表示空格),则程序的运行结果为( A 30 )
30 (A) asdab123 (B) asd_ab123 (C) asdab_123 (D) asd
5. 读程序,回答问题。
# include <stdio.h>
# include <conio.h>
struct mod
{int a,b,c;};
void main()
{ struct mod st[3]={{1,2,3},{4,5,6},{7,8,9}};
int total;
total=st[0].a+st[1].b;
printf("total=%d\n",total);
getch();
}
程序运行输出total=( B )。
31 (A)5 (B) 6 (C) 7 (D) 8
6. 有下列程序:
# include <stdio.h>
void main()
{
int x=10,y=5;
switch(x)
{ case 1: x++;
default: x+=y;
case 2: y--;
case 3: x--;
}
printf("x=%d,y=%d",x,y);
}
程序输出结果为( A )。
(A) x=14,y=4 (B) x=15,y=4
(C) x=10,y=5 (D) x=15,y=5
7. 读程序,回答问题。
# include <stdio.h>
int f(int m)
{
static int n=1;
m/=2;
m=m*2;
if(m)
{ n*=m;
return(f(m-2));
}
else return(n);
}
void main()
{
int a,i,j;
for(i=0;i<2;i++)
{
a=f(4+i);
printf("%d\n",a);
}
}
(1)程序第一次的输出结果是( A )。
33 (A) 8 (B) 0 (C) 64 (D) 4
(2)程序第二次的输出结果是( C )。
34 (A) 8 (B) 0 (C) 64 (D) 4
8. 有下列程序,若程序编译连接后生成可执行文件CAD.EXE,则输入以下命令行:
cad FILE1 FILE2<CR> (<CR>表示回车)
程序的运行结果是( D )。
# include <stdio.h>
void main(int argc,char *argv[])
{
int i;
printf("%d\n",argc);
for(i=0;i<=argc-1;i++)
printf("%s",argv[i]);
printf("\n");
}
35 (A) 2 (B) 3
Cadfile1file2 file1file2
(C) 2 (D)3
CAD.EXE FILE1 FILE2 CAD.EXEFILE1FILE2
9. 下面程序的功能是把316表示为两个数的和,且这两具加数分别能被13和11整除。程序while语句下划线处应填入( D )。
# include <stdio.h>
void main()
{ int i=0,j,k;
do{
i++;
k=316-13*i;
}while ( );
j=k/11;
printf("316=13*%d+11*%d",i,j);
}
36 (A) k/11 (B)k%11 (C) k (D) k%11==0
10. 读程序并回答问题。
# include <stdio.h>
void main()
{
int a=1,b=3,c=5,d=4,x;
if(a<b)
if(c<d) x=1;
else
if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;
printf("%d",x);
}
(1)程序执行完后x的值是( B )。
37 (A)1 (B) 2 (C) 3 (D) 6
(1)当d的值改为2时,程序执行完后x的值是( C )。
38 (A)1 (B) 2 (C) 3 (D) 6
11. 以下程序的运行结果为( C )。
# include <stdio.h>
void sub(int x,int y,int *z)
{ *z=y-x; }
void main()
{
int a=1,b=2,c=3;
sub(a,b,&a);
sub(b,a,&b);
sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
39 (A) 1,1,0 (B) 1,2,3 (C) 1,-1,-2 (D) 1,2,1
12. 下面程序的输出结果是( D )。
# include <stdio.h>
# include <string.h>
void main()
{ char *p1="abc",*p2="ABC",str[50]="xyz";
strcpy(str+3,p2);
strcat(str+2,p1);
printf("%s\n",str);
}
40 (A) xyzabcABC (B) xyzABabc (C) yzabcABC (D) xyzABCabc

注意:① 请把下面“程序填空”中各小题答案写在主观题答题纸上
② 每一个空只填一个语句或一个语句所缺的部分内容

三、程序填空 ( 每空2分,共30分 )
1. 函数fun的功能是:求出s所指字符串中指定字符的个数,并返回个数。例如,在main函数中,若输入字符串abcdabacaa ,输入指定字符a,则输出结果为5,即字符串abcdabacaa中有5个字符a。请填空。
# include <stdio.h>
# define M 81
int fun(char *s,char c)
{
int i,cnt=0;
for(i=0;① ;i++)
if(*(s+i)==c)
cnt++;

}
void main()
{
char str[M],ch;
printf("\nPlease enter a string:");
gets(str);
printf("\nPlease enter a char:");
ch=getchar();
printf("\nThe number of the char is : %d\n", ③ );
}
2. 函数fun的功能是根据公式 计算级数前n项的和s,计算结果通过形参指针s传回;n值大于等于0。请填空。
# include <stdio.h>
void fun(float *s,int n)
{
float t=0.0;
int i,k=-1;
for(i=0;i<=n;i++)
{
k=① *k;
t=t+k*1.0/② ;
}

}
void main()
{
int n;
float s;
printf("Input n:");
scanf("%d",&n);
fun(&s,n);
printf("s=%f\n",s);
}
3. 下列程序的功能是:求一个M*N二维数组每行元素的和,并将和依次放入一个一维数组中传回主函数。例如,若有以下二维数组:
6 10 2 10 15
17 14 15 8 6
4 18 10 19 12
0 12 1 2 7
则输出为:43 60 63 22。请填空。
# define M 4
# define N 5
# include <stdio.h>
fsum(int a[][N]),int b[])
{ int i,j;
for(i=0;i<M,i++)
① ;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
② =a[i][j];
}
void main()
{
int x[M][N],y[M],i,j;
printf("The %d x %d Array :\n",M,N);
for(i=0;i<M;i++)
{ for(j=0;j<N;j++)
{ ③ =rand()%20;
printf("%6d",x[i][j]);
}
printf("\n");
}
fsum(x,y);
printf("The sum of each line:\n");
for(i=0;i<M;i++)
printf("%6d",y[i]);
printf("\n");
}
4. 下面的程序求ab.c文件中最长的行的字符数len及其行号line。请填空。
# include <stdio.h>
void main()
{
int line,i,j=0,len=0;
char c;
FILE *fp;
fp=fopen("ab.c","r");
rewind(fp);
while(fgetc(fp)!EOF)
{ i=1;
while(fgetc(fp)!='\n') ① ;
j++;
if(i>len) { len=i; ② ; }
}
printf("\n%d\t%d\n",len,line);
③ ;
}
5. 下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数按位放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其他依此类推。请填空。
# include <stdio.h>
int fun(int x,int b[])
{ int k=0,r;
do
{ r=x%2;
b[ ① ]=r;
x/= ② ;
}while(x);
return ③ ;
}
void main()
{
int k,n,a[20];
printf("\nEnter n:");
scanf("%d",&n);
k=fun(n,a);
while(k>=0)
printf("%d",a[k--]);
}

考内东西有个毛用


四川省2010年10月计算机二级C语言考试成绩可以查了吗?是哪儿?
现在可以查了哈,西南科技大学考点的已经能领证件了,建议你去你们学校校网或者辅导员那里看看!

C语言实例教程人民邮电2012出版
内容包括C语言基本元素、程序设计基础、函数、指针与文件、图形与音乐等主题,深入浅出,每章后配有课堂练习,还有配套的四川省精品课程网站,便于教学与学习。第1章介绍了C语言的概述,包括简史、构成和调试环境,如Dev-C++和Turbo C\/C++ for windows。第2章至第10章分别涵盖了C语言的基础、顺序与分支...

四川省计算机二级C语言上机部分是人工阅卷还是系统阅卷?
是人工的,但他们只看你保存好的文件名里的内容,有可能就没分!希望你幸运!

四川省二级c语言考试怎么样 什么难度
足够 裸考就能过

急!没及时交卷问题??四川省二级C语言上机考试 急急!
程序保存了就行了,收卷系统自动到那个文件夹里收取。绝对没事,你不信等成绩下来看看,肯定有你分,呵呵!

c语言 二级 要多少分才能通过??
上次考试的笔试和上机考试仅其中一项成绩合格的,下次考试报名时应出具上次考试准考证(或报出上次考试的准考证号),成绩合格项可以免考,只参加未通过项的考试。报考单项费用一、二、三级为60元,四级为80元(目前四级没有上机)。如果是省的话也应该差不多,但是应该没有保留成绩。至少四川省是没有...

2008年四川省计算机二级C语言上机试题
建议你到 bbs.ncre.com去找,那是全国计算机等级考试的论坛,每次考完后,版主都会把考题发出来,还有考题是全国统一的,没有省份区别。

温荷出生于哪里
现任成都东软学院计算机科学与技术系专业教师,2009年10月担任计算机科学与技术团队副主任,主管教学工作。中文名:温荷国籍:中国民族:汉出生日期:1982年4月职业:教师毕业院校:西南交通大学代表作品:C语言程序设计案例教程(第2版)教研与科研情况教学研究2007-02-01至2012-03-31,基于TOPCARES-CDIO...

全国计算机等级考试二级C语言在东莞报的名,如果只合格一门,可以转成...
可以,需要在报名时填写清楚原来的信息。

四川省计算机二级和全国计算机二级哪个难?考试内容有什么区别呢??_百度...
另外,四川省的一般在国家的考完后两周左右考。每年4月和10月各一次。四川省的报名费大概25,国家的100左右。呵呵,因为我正经历着这些,所以知道一些。如有不全,还请见谅。^-^ 补充:和系别没啥关系,就是你学的什么类而已,是vf、vb还是c语言还是别的PC啊、C++啊等等,也就是难度的问题,渐...

唐县15166181112: 求四川省历年C语言二级真题或者模拟题
咸钱塞替: [url= http://www.xydyz.com/bbs/thread-1454-1-1.html]2007年9月22日计算机等级考试二级C试题真题

唐县15166181112: 求计算机二级C语言历年真题
咸钱塞替: 2005年4月-2009年9月计算机等级考试二级C真题汇总含答案 http://club.topsage.com/thread-485611-1-1.html

唐县15166181112: 哪里有C语言二级的历年试题?
咸钱塞替:http://www.kaoeasy.cn/modules/news/article.php?storyid=845 2005年9月全国计算机等级考试三级PC技术笔试试卷http://www.kaoeasy.cn/modules/news/article.php?storyid=844 2005年9月全国计算机等级考试三级数据库笔试试卷(含答案)...

唐县15166181112: 跪求二级C语言历年真题及答案 -
咸钱塞替: http://wenku.baidu.com/link?url=fwVrGCTc7Vb_9wfDm-xUA-wicbrGd5kU0ZiMslI1ZoHX34Qw0ynKgSi-asUUNwotpDjd2zizSKuNlK0-FcgYoWsISaMw-eg6_b12qaGXIYW

唐县15166181112: 哪里能找到历年计算机二级C语言考试试题啊????这考试是全国统一考吗???? -
咸钱塞替: http://wenku.baidu.com/album/view/4fc3bd6e58fafab069dc02d8.html 打开链接就是试题和答案 有全国统考的也有省内的,分两种

唐县15166181112: 一道四川2级的c试题: -
咸钱塞替: #include <stdio.h>int change(char *c,int fg){ if(*c==' ')L1: return 1;//可能是goto语句的一个标志// else if(fg&&*c<='z'&&*c>='a') *c+='A'-'a'; return 0;}void main(){ int flag=1; char ch; do { ch=getchar(); flag=change(&ch,flag);//flag =1的时候才将字符转化为大写// putchar(ch); }while(ch!='\n');}

唐县15166181112: 计算机二级考试试题C语言 -
咸钱塞替: a=(int)((double)(3/2)+0.5+(int)1.99*2); 3/2 =1 (3是int 类型 ,2是int类型,输出答案自动转换为int类 ,如果要得到1.5,请用3.0/2,此时输出double类) (int)1.99=1 所以 (int)1.99*2 =2 1+0.5+2 =3.5; int(3.5)=3

唐县15166181112: 求四川省计算机等级考试二级c语言考试复习题资料
咸钱塞替: http://it.kswchina.com/ncre/ej/

唐县15166181112: 求近年 计算机2级c语言试题 笔试和上机的 -
咸钱塞替: 发你两份,满意推.

唐县15166181112: 历年C语言二级真题,最好更新到09上半年
咸钱塞替: http://www.passtwo.com/ 模拟题和真题都有 希望可以帮到你 http://www.examlink.com/html/Computer/dengji/test/index.html 这上面也有

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网