谁有四川省计算机C语言二级考试的真题或者模拟题?多给我几套最好了,要有答案的。要多少分您说,只要我有

作者&投稿:吁萱 (若有异议请与网页底部的电邮联系)
求四川省计算机二级c语言考试历年真题(要全面的)要几套最近的真题和答案 谢谢了 马上考试了 着急~

兄弟,计算机等考全国都一样,往年真题哪里都有卖的。去书店看看吧。也不图你分。

四川省普通高等学校计算机应用知识和能力
第二十八次等级考试
二级(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
",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
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
",s);
}
程序运行后的输出结果是( B )。
26 (A) ABCDDFEFDBD (B) abcDDfefDbD (C) abcAAfefAbA (D) Abcddfefdbd
2. 读程序并回答问题。
# include
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
",s);
}
(1)函数fun的功能是( A )。
27 (A) 将数组a的前n个元素逆置 (B) 对数组元素进行升序排列
(C) 交换数组第一个元素和最后一个元素 (D) 对数组元素进行降序排列
(2)程序的运行结果是( A )
28 (A) 34 (B) 30 (C) 22 (D) 10
3. 读程序,回答问题
# include
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
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
",str);
}
程序运行时输入字符串asd_ab_123(注:用“_”表示空格),则程序的运行结果为( A 30 )
30 (A) asdab123 (B) asd_ab123 (C) asdab_123 (D) asd
5. 读程序,回答问题。
# include
# include
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
",total);
getch();
}
程序运行输出total=( B )。
31 (A)5 (B) 6 (C) 7 (D) 8
6. 有下列程序:
# include
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
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
",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 (表示回车)
程序的运行结果是( D )。
# include
void main(int argc,char *argv[])
{
int i;
printf("%d
",argc);
for(i=0;i<=argc-1;i++)
printf("%s",argv[i]);
printf("
");
}
35 (A) 2 (B) 3
Cadfile1file2 file1file2
(C) 2 (D)3
CAD.EXE FILE1 FILE2 CAD.EXEFILE1FILE2
9. 下面程序的功能是把316表示为两个数的和,且这两具加数分别能被13和11整除。程序while语句下划线处应填入( D )。
# include
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
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
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
",a,b,c);
}
39 (A) 1,1,0 (B) 1,2,3 (C) 1,-1,-2 (D) 1,2,1
12. 下面程序的输出结果是( D )。
# include
# include
void main()
{ char *p1="abc",*p2="ABC",str[50]="xyz";
strcpy(str+3,p2);
strcat(str+2,p1);
printf("%s
",str);
}
40 (A) xyzabcABC (B) xyzABabc (C) yzabcABC (D) xyzABCabc

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

三、程序填空 ( 每空2分,共30分 )
1. 函数fun的功能是:求出s所指字符串中指定字符的个数,并返回个数。例如,在main函数中,若输入字符串abcdabacaa ,输入指定字符a,则输出结果为5,即字符串abcdabacaa中有5个字符a。请填空。
# include
# 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("
Please enter a string:");
gets(str);
printf("
Please enter a char:");
ch=getchar();
printf("
The number of the char is : %d
", ③ );
}
2. 函数fun的功能是根据公式 计算级数前n项的和s,计算结果通过形参指针s传回;n值大于等于0。请填空。
# include
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
",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
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 :
",M,N);
for(i=0;i<M;i++)
{ for(j=0;j<N;j++)
{ ③ =rand()%20;
printf("%6d",x[i][j]);
}
printf("
");
}
fsum(x,y);
printf("The sum of each line:
");
for(i=0;i<M;i++)
printf("%6d",y[i]);
printf("
");
}
4. 下面的程序求ab.c文件中最长的行的字符数len及其行号line。请填空。
# include
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)!='
') ① ;
j++;
if(i>len) { len=i; ② ; }
}
printf("
%d%d
",len,line);
③ ;
}
5. 下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数按位放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其他依此类推。请填空。
# include
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("
Enter n:");
scanf("%d",&n);
k=fun(n,a);
while(k>=0)
printf("%d",a[k--]);
}

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\n”,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(“\n”);

}

}

程序运行后的输出结果是(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)”\n”

(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\n”,p);

}

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

A)int n,*p=NULL;
B)*p=&n;
C)scanf(“%d”,&p)
D)printf(“%d\n”,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\n”,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\n”,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 \n”,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\n”,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\n,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”,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\n”,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\n.,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\n”,*(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\n”,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\n”,a[0],a[1],a[2]); fprintf(fp, “%d%d%d \n”,a[3],a[4],a[5]);

fclose(fp);

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

fscanf(fp, “%d%d”,&k,&n); printf(“%d%d\n”,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\n”,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\n k=%d ”,m,k++);}

main()

{ int i=4;

fun(i++); printf(“i=%d k=%d\n”,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(“\n”);

}

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

# include

main()

{ printf(“%d\n”,strlen(“IBM\n012\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\n”,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(“\n”);

(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\n”,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\n”,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\n”,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"


求四川省计算机等级考试二级c语言考试复习题
define C-BLUE BIT-SHIFTL(3,8) \/* 01100000000 *\/ define C_WHITE BIT-SHIFTL(4,8) \/* 10000000000 *\/ defineC-ZERO C-BLACK defineC-LARGEST C-WHITE \/* A truly paranoid programmer might do this *\/ if C_LARGEST > C_FLAG Cause an error message. The flag C_FLAG...

四川省计算机等级考试二级C语言编程软件用的是哪个版本?
用的是visual c++6.0,,语言编程的工具很多,比如c-free,dev c++(这个很多编程书都是用的这个软件),建议平时编程时用visual c++ 6.0(熟悉环境嘛),你可以到网上找这个软件的教程,不过也要略懂一些dev c++ 的操作,因为要看一些资料啊 ...

我在四川我报考计算机考试,为什么二级只有C语言这个选项啊,没有office...
你好,虽然现在开始报名了,但是有的学校会根据具体情况开考计算机科目 像你这种情形,你可以报其他学校进行考试。

四川计算机二级
四川省计算机二级2022年下半年(第66次)全国计算机等级考试将于2022年9月24日至9月26日进行。一、报考对象:我院所有在籍学生,包括三年大专、五年大专、中专、技工、高级工、成人大专等。二、考试时间:2022年9月24日至9月26日,具体考试时间见学生准考证。三、网上报名时间:2022年6月22日14:00至...

2009四川省二级c语言考试时间安排
1、2009年上半年考试时间定于3月28日至4月1日,下半年为9月19日至23日。2、应用软件为全国计算机等级考试二级教程——C语言程序设计(2008年版)3、不要求笔试和上机一次性通过,有一次补考机会,但第一次考试至少要通过笔试及上机中的一种。比如你四月份考时笔试通过了,但上机不合格,那你的笔试...

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

计算机C语言有什么用啊??
1、C语言是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。2、C语言是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式...

计算机二级c语言考试的题型有哪些?
计算机二级c语言考试考试要求:一、熟悉Visual C++2010 Express集成开发环境。二、掌握结构化程序设计的方法,具有良好的程序设计风格。三、掌握程序设计中简单的数据结构和算法并能阅读简单的程序。四、在Visual C++2010 Express集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。以上便是...

考C语言考的是什么证有什么用
C语言考的是全国计算机二级证书。全国计算机二级证书用处为:表明持有人具有计算机基础知识和基本应用能力,能够使用计算机高级语言编写程序和调试程序,可以从事计算机程序的编制工作、初级计算机教学培训工作以及计算机企业的业务和营销工作。可以免考自学考试中的《程序设计》课程。通过计算机等级考试证书,可以在评...

计算机二级C语言考试内容有哪些
考10个单选,C语言有基础知识(C语言概述、常量与变量、数据类型、运算符和表达式),编程三大结构(顺序结构、选择结构、循环结构),数组、函数和指针,其他内容(预处理命令、结构体和共用体、位运算、文件)四大部分内容。重点是第二、三部分。计算机二级C语言备考方法 1、学会并习惯使用编程软件的帮助系统...

炎陵县13577042704: 计算机二级考试c语言 有真题吗 -
除炎必澳: 腾跃英语计算机学院 提示您 计算机二级c语言没有固定的真题,每年的题都在变化. 个人感觉,计算机二级c语言最好别买书看,一是太慢了, 二是书上的信息比较过时 .我寝室有室友买的书附带送的有视频,考了3次了都没有过.我个人是买的视频课程看的 ,然后把每个知识点都操作一遍.今年9月份考得 81分 一次就过了. 2. 楼主有其他关于计算机二级c语言 二级office等的问题也可以搜>,我的课程也是在里面买的.里面还有很多学习资料,也有老师解答更多问题.祝您顺利通过,求采纳

炎陵县13577042704: 如何辨别 国家计算机二级考试(C语言)合格证 的真伪? -
除炎必澳: 计算机等级考试的证书,在印刷制作时采用了多种防伪技术,基本上和大学学历证书的制作技术一样.根据我本人的了解,简单介绍其中的5种:(1)水印:把证书对着光亮看就能看到.(2)防伪磁性油墨:空白证书如图所示,其他的个人信...

炎陵县13577042704: 四川省计算机等级考试二级C语言编程软件用的是哪个版本? -
除炎必澳: 用的是visual c++6.0,,语言编程的工具很多,比如c-free,dev c++(这个很多编程书都是用的这个软件),建议平时编程时用visual c++ 6.0(熟悉环境嘛),你可以到网上找这个软件的教程,不过也要略懂一些dev c++ 的操作,因为要看一些资料啊

炎陵县13577042704: 四川省计算机二级考试证书在全国通用吗 -
除炎必澳: 四川省计算机等级考试,又名全国高等学校非计算机专业计算机等级考试,可以全国通用,这个考试是教育部委托各省举行的,国家认可的

炎陵县13577042704: 现在网上卖的,计算机二级C语言考题,就是通过你的考号,提前知道你的考题,这种事是真的吗? -
除炎必澳: 肯定是假的.一般写程序的都知道,随机分配题目的时候不会将题和考号绑定死的,多用时间等唯一信号当种子产生随机数,是不可预测和无法重现的.通过考号能知道题目只有两种可能,一个写考题软件的程序员脑子进水了,二就是骗子,请慎重考虑.建议还没考,赶紧去学习,顺便弄点老师的资料或者培训的资料,考前给的都很准,有参考价值,比网上买答案这个赌对方不是骗子的侥幸心里强多了.

炎陵县13577042704: 四川省计算机二级C语言怎么应考?
除炎必澳:首先,找同学,或者去图书馆解一本C/C++语言教材,因为要做题,就必须了解C/C++语言的语法和一些简单的结构化设计.借书这事情摆在第一位,是因为现在教材也是比较热的,很可能比较难借到.而且四川省二级既要考C语言,又要考C++,学习范围广于全国计算机二级C.其次,选择一套最新的四川省二级C/C++试题,学校的报亭里似乎只有资料了,可以考虑在外面的书店里找一套.最后,东西都准备齐了,登录 http://www.qnr.cn/pc/dj/dagang/200912/247219.html 查看考试大纲,确定学习方向后,开始学习吧.如果你觉得这样的方式入门太难的话,其实也可以报个入门级的培训班.看你自己怎样选择了.

炎陵县13577042704: 四川省二级计算机考试有用不? -
除炎必澳: 全国的好.不过怎么说,二级到要过的,貌似有的学校二级会跟学位证挂钩的.四川省二级考试很简单,资料很有用,上机是抽查试卷的,笔试要全看.有些地方是要看国家级的,省二级出省了可能不认可.考国家的其实也很简单,多看书就可以了.

炎陵县13577042704: 请大家谈谈四川的二级考试(C语言)不要顾及什么,但说无防!
除炎必澳: 确实不难. 对于机试,做做上机的题库就可以了.注意,对于一些的典型程序要确实搞懂.简单点的如 排序,复杂点的如 矩阵相乘. 对于笔试,买套模拟题做一下里面的选择和填空题,把其中不会的背下来就可以了. 我当时考二级的时候,就买了套模拟题(共十套题).把里面的所有填空做了一遍.把其中不会的背了.我是以优的成绩过的二级. 我是四川的.不过,我当时考的是全国计算机二级.

炎陵县13577042704: 计算机二级考试报哪个好?C语言真的很难吗?考过的大仙回答 -
除炎必澳: 不是很难,好好复习也挺容易通过的,上机考试题库一共就有那么十几个类型的试题,掌握了基本的题型,做到举一反三,考试通过就肯定没问题了,资料上买本《未来教育·全国计算机等级考试上机考试、全真笔试、历年真题三合一二级C》,里面的试题基本上都是考试试题的原题或者是原题类型,上机软件环境也很不错,挺不错的,推荐你可以看看

炎陵县13577042704: 我马上要考四川省计算机二级C语言,不知道是用的什么软件啊?有没有知道的说下具体情况啊 -
除炎必澳: vc9.8和vc6.0都可以的,因为计算机二级要求编写的程序都是很基础很简单的语言,一般的编程软件都可以达到

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