大家好,今天来为大家分享二级c语言真题的一些知识点,和二级c语言真题2006年09月的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
随着计算机技术的发展,C语言已经成为计算机专业学生必备的基础课程之一。二级C语言考试作为计算机等级考试中的重要一环,吸引了众多考生。如何备考二级C语言真题呢?本文将从以下几个方面进行深入剖析,帮助考生顺利通过考试。
一、二级C语言真题概述
1. 考试大纲
二级C语言考试大纲主要包括基础知识、程序设计基础、算法设计与分析、数据结构与算法、操作系统、计算机网络、数据库系统、软件工程等八个方面。其中,基础知识、程序设计基础、算法设计与分析是考试的重点。
2. 考试形式
二级C语言考试采用笔试形式,考试时间为120分钟,满分100分。考试题型包括选择题、填空题、编程题和综合应用题。
二、备考攻略
1. 熟悉考试大纲
备考二级C语言真题,首先要熟悉考试大纲,明确考试范围和重点。考生可以通过查阅教材、历年真题等方式,了解考试大纲的具体内容。
2. 系统学习基础知识
基础知识是二级C语言考试的基础,主要包括C语言语法、数据类型、运算符、控制结构、函数、数组、指针等。考生需要系统学习这些基础知识,掌握其基本概念和用法。
3. 深入理解算法设计与分析
算法设计与分析是二级C语言考试的重点之一。考生需要掌握常见的算法设计方法,如分治法、贪心法、动态规划等,并能将其应用于实际问题中。
4. 熟练掌握数据结构与算法
数据结构与算法是计算机专业的重要基础,也是二级C语言考试的重点。考生需要熟练掌握常见的数据结构,如数组、链表、树、图等,以及相应的算法。
5. 多做练习题
多做练习题是提高解题能力的关键。考生可以通过历年真题、模拟题等资源,进行针对性的练习。在练习过程中,要注意总结解题思路,提高解题速度。
6. 模拟考试
在备考过程中,进行模拟考试可以帮助考生熟悉考试环境和时间分配。考生可以根据自己的实际情况,制定合理的模拟考试计划。
三、解题技巧
1. 选择题:选择题主要考察对基础知识的掌握程度。解题技巧如下:
仔细阅读题干,理解题目要求。
根据题目所给信息,分析选项的正确性。
排除明显错误或不合适的选项,选择最符合题意的答案。
2. 填空题:填空题主要考察对基础知识的记忆和应用能力。解题技巧如下:
根据题干,回忆相关知识点的具体内容。
注意关键字和关键词,确保填空准确无误。
3. 编程题:编程题是二级C语言考试的重点,解题技巧如下:
分析题目要求,明确程序的功能和目标。
设计合理的算法,选择合适的数据结构。
编写代码,注意代码规范和注释。
测试代码,确保程序能够正常运行。
4. 综合应用题:综合应用题主要考察综合运用所学知识解决问题的能力。解题技巧如下:
分析题目背景,明确问题所在。
结合所学知识,寻找解决问题的方法。
设计解决方案,实现程序功能。
备考二级C语言真题需要考生具备扎实的理论基础和丰富的实践经验。通过以上分析,相信考生已经对备考过程有了更清晰的认识。在此,祝愿广大考生在二级C语言考试中取得优异成绩!
| 序号 | 考试内容 | 解题技巧 |
|---|---|---|
| 1 | 选择题 | 仔细阅读题干,分析选项,排除错误选项,选择最符合题意的答案 |
| 2 | 填空题 | 回忆相关知识,注意关键字,确保填空准确无误 |
| 3 | 编程题 | 分析题目要求,设计算法,编写代码,测试程序 |
| 4 | 综合应用题 | 分析问题背景,结合所学知识,设计解决方案,实现程序功能 |
希望本文对备考二级C语言真题的考生有所帮助!
全国计算机等级考试二级C语言历年试题及答案
2010年9月全国计算机等级考试二级C语言笔试试题及答案
一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分))
(1)下列选项中不属于软件生命周期开发阶段任务的是
A)详细设计B)概要设计C)软件维护D)软件测试
(2)树是结点的集合,它的根结点数目是
A)有且只有1B)1或多于1 C)0或1 D)至少2
(3)在面向对象方法中,实现信息隐蔽是依靠
A)对象的继承B)对象的多态C)对象的封装 D)对象的分类
(4)程序设计语言的基本成分是数据成分、运算成分、控制成分和
A)语句成分B)变量成分C)对象成分 D)传输成分
(5)冒泡排序在最坏情况下的比较次数是
A)n/2B)nlog2nC)n(n-1)/2 D)n(n+1)/2
(6)下列叙述中,不属于软件需求规格说明书的作用的是
A)作为确认测试和验收的依据
B)反映出用户问题的结构,可以作为软件开发工作的基础和依据
C)便于用户、开发人员进行理解和交流
D)便于开发人员进行需求分析
(7)下列叙述中错误的是
A)一个C语言程序只能实现一种算法 B)C程序可以由多个程序文件组成
C)C程序可以由一个或多个函数组成 D)一个函数可单独作为一个C程序文件存在
(8)下列不属于软件工程的3个要素的是
A)方法 B)过程 C)工具D)环境
(9)下列叙述中正确的是
A)数据库系统是一个独立的系统,不需要操作系统的支持
B)数据库技术的根本目标是要解决数据的共享问题
C)数据库管理系统就是数据库系统
D)以上三种说法都不对
(10)下列叙述中正确的是
A)每个C程序文件中都必须有一个main()函数
B)在C程序的函数中不能定义另一个函数
C)C程序可以由一个或多个函数组成
D)在C程序中main()函数的位置是固定的
(11)将E-R图转换到关系模式时,实体与联系都可以表示成
A)属性B)关系 C)键 D)域
(12)下列定义变量的语句中错误的是
A)double int_; B)int _int;C)char ForD)float USS
(13)下列叙述中正确的是
A)C语言编译时不检查语法 B)C语言的子程序有过程和函数两种
C)C语言的函数可以嵌套定义 D)C语言的函数可以嵌套调用
(14)以下选项中,合法的一组C语言数值常量是
A) 0x8A B)12C).177 D) 028
(15)以下叙述中正确的是
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其他函数之前
D)所有被调用的函数一定要在调用之前进行定义
(16)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是
A)scanf(“%d”,&p);B)scanf(“%d%d%d”,a,b,c);
C)scanf(“%d”,p);D) scanf(“%d”,a,b,c);
(17)有以下程序
main()
{int x,y,z;
x=y=1;
z=x++,y++,++y;
printf(“%d,%d,%d\n”,x,y,z);
}
程序运行后的输出结果是
A)2,2,3B)2,2,2 C)2,3,1D)2,1,1
(18)若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25&&b–<=2&&c?printf(“***a=%d,b=%d,c=%d\n”,a,b,c):printf(“###a=%d,b=%d,c=%d\n”,a,b,c);程序输出的结果是
A)***a=25,b=13,c=19 B)***a=26,b=14,c=19
C)### a=25,b=13,c=19 D)### a=26,b=14,c=19
(19)下列程序段的输出结果是
int a=1234;
float b=123.456;
double c=12345.54321;
printf(”-,%2.1f,%2.1f”,a,b,c);
A)无输出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.5
(20)有以下程序
main()
{int a=0,b=0;
a=10;/*给a赋值
b=20;给b赋值*/
printf(“a+b=%d\n”,a+b);/*输出计算结果*/
}
程序运行后输出结果是
A)30B)a+b=30C)a+b=0D)出错
(21)若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是
#include
main()
{ char c;
int v0=1,v1=0,v2=0;
do{ switch(c=getchar())
{ case′a′:case′A′:
case′e′:case′E′:
case′i′:case′I′:
case′o′:case′O′:
case′u′:case′U′:v1+=1;
default:v0+=1;v2+=1;
}
} while(c!=′\n′);
printf(”v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);
}
A)v0=11,v1=4,v2=11 B)v0=8,v1=4,v2=8
C)v0=7,v1=4,v2=7 D)v0=13,v1=4,v2=12
(22)有以下程序
#include
main()
{int y=9;
for( y>0;y–)
if(y%3==0) printf(“%d”,–y);
}
程序的运行结果是
A)732B)433 C)852D)874
(23)设有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf(”%d”,s);
则
A)运行程序段后输出0B)运行程序段后输出1
C)程序段中的控制表达式是非法的D)程序段执行无限次
(24)有以下程序
fun(int x,int y){return(x+y);}
main()
{int a=1,b=2,c=3,sum;
sum=fun((a++,b++b,a+b),c++);
printf(“%d\n”,sum);
}
执行后的输出结果是
A)5 B)7 C)8 D)3
(25)执行下面的程序段后,变量k中的值为
int k=3, s[2];
s[0]=k; k=s[1]*10;
A)不定值B)35C)31D)20
(26)以下叙述中错误的是
A)改变函数形参的值,不会改变对应实参的值
B)函数可以返回地址值
C)可以给指针变量赋一个整数作为地址值
D)当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL
(27)以下程序段的描述,正确的是
x=-1;
do
{x=x*x;} while(!x);
A)是死循环B)循环执行两次 C)循环执行一次 D)有语法错误
(28)有以下程序
fun(int x,int y)
{static int m=0,i=2;
i+=m+1;m=i+x+y; return m;
}
main()
{int j=1,m=I,k;
k=fun(j,m); printf(“%d”,k);
k=fun(j,m); printf(“%d\n”,k)
}
执行后的输出结果是
A)5,5 B)5,11C)11,11D)11,5
(29)有以下程序
fun(int x)
{int p;
if(x==0║x==1) return(3);
p=x-fun(x=2);
retum p;
}main()
{ prinf(“%d\n”,fun(7));}
执行后的输出结果是
A)7B)3C)3D)0
(30)在16位编译系统上,右有定义int a[ ]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是
A)p向高地址移了一个字节 B)p抽高地址移了一个存储单元
C)p向高地址移了两个字节 D)p与a+1等价
(31)有以下程序
main()
{int a=1,b=3,c=5;
int*p1=&a,*p2=&b,*p=&c;
*p=*p1*(*p2);
printf(“%d\n”,c);
}
执行后的输出结果是
A)1B)2 C)3D)4
(32)下列程序执行后的输出结果是
void func1(int i);
void func2(int i);
char st[]=”hello,friend!”;
void func1(int i)
{ printf(”%c”,st[i]);
if(i<3){i+=2;func2(i);}
}
void func2(int i)
{ printf(”%c”,st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{ int i=0; func1(i); printf(”\n”);}
A)helloB)hel C)hlo D)hlm
(33)在下述程序中,判断i>j共执行的次数是
main()
{ int i=0, j=10, k=2, s=0;
for(;;)
{ i+=k;
if(i>j)
{ printf(”%d”,s);
break;
} s+=i;
}
}
A)4 B)7C)5D)6
(34)以下函数返回a所指数组中最大值所在的下标值
fun(int*a,int n)
{ int i,j=0,p;
p=j;
for(i=j;iif(a[i]>a[p]);
return(p);
}
在下划线处应填入的内容是
A)i=p B)a[p]=a[i] C)p=j D)p=i
(35)下列程序执行后的输出结果是
main()
{ int a[3][3],*p,i;
p=&a[0][0];
for(i=1; i<9; i++)p[i]=i+1;
printf(”%d\n”,a[1][2]);
}
A)3 B)6 C)9D)随机数
(36)有以下程序
#include
void fun(int*a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/
{int t,i,j;
for(i=0;ifor(j=i+1;jif(a}
main()
{int c[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for(i=0;i<10;i++) printf(“%d,”,c);
printf(“\n”);
}
程序运行的结果是
A)1,2,3,4,5,6,7,8,9,0,B)0,9,8,7,6,5,1,2,3,4,
C) 0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0,
(37)以下程序的输出结果是#include
void prt(int*x, int*y, int*z)
{ printf(”%d,%d,%d\n”,++*x,++*y,*(z++));}
main()
{ int a=10,b=40,c=20;
prt(&a,&b,&c);
prt(&a,&b,&c);
}
A)11,42, 31
12,22,41
B)11,41,20
12,42,20
C)11,21,40
11,21,21
D)11,41,21
12,42,22
(38)有以下程序:
#include
void fun(char*t,char*s)
{
while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{
char ss[10]=”acc”,aa[10]=”bbxxyy”;
fun(ss,aa);
printf(“%s,%s\n”,ss,aa);
}
程序运行结果是
A) accxyy, bbxxyy B) acc, bbxxyy
C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy
(39)有以下程序
#include
main()
{ FILE*fp; int i=20,j=30,k,n;
fp=fopen(”d1.dat”,”w”);
fprintf(fp,”%d\n”,i);fprintf(fp,”%d\n”,j);
fclose(fp);
fp=fopen(”d1.dat”,”r”);
fscanf(fp,”%d%d”,&k,&n); printf(”%d%d\n”,k,n);
fclose(fp);
}
程序运行后的输出结果是
A)20 30B)20 50C)30 50D)30 20
(40)有以下程序
main()
{int x[3][2]={0},I;
for(I=0;I<3;I++) scanf(“%d”,x[i]);
printf(“%3d%3d%3d\n”,x[0][0],x[0][1],x[1][0]);
}
若运行时输入:246,则输出结果为
A)2 0 0B)2 0 4C)2 4 0D)2 4 6
(41)有以下程序
int add(int a,int b){return+b};}
main()
{int k,(*f)(),a=5,b=10;
f=add;
…
}
则以下函数调用语句错误的是
A)k=(*f)(a,b); B)k=add(a,b); C)k=*f(a,b); D)k=f(a,b);
(41)有以下程序
#include
main(int argc,char*argv[])
{int i=1,n=0;
while(i<arge){n=n+strlen(argv[i]);i++;}
printf(“%d\n”,n);
}
该程序生成的可执行文件名为:proc.exe。若运行时输入命令行:
proc 123 45 67
则程序的输出结果是
A)3 B)5C)7 D)11
(42)有以下程序
void fun2(char a, char b){printi(“%b%c”,a,b);}
char a=‘A’,b=‘B’;
void fun1(){ a=‘C’l b=‘D’;}
main()
{ fun1()
printf(“%c%c”,a,b);
fun2(‘E’,‘F’);
}
程序的运行结果是
A)CDEF B)ABEFC)ABCD D)CDAB
(43)有以下程序
#include
#define N 5
#define M N+1
#define f(x)(x*M)
main()
{int i1,i2;
i1=f(2);
i2=f(1+1);
printf(“%d%d\n”,i1,i2);
}
程序的运行结果是
A)12 12B)11 7 C)1111D)127
(44)设有以下语句
typedef struct TT
{char c; int a[4];}CIN;
则下面叙述中正确的是
A)可以用TT定义结构体变量 B)TT是struct类型的变量
C)可以用CIN定义结构体变量D)CIN是struct TT类型的变量
(45)有以下结构体说明、变量定义和赋值语句
struct STD
{char name[10];
int age;
char sex;
}s[5],*ps;
ps=&s[0];
则以下scanf函数调用语句中错误引用结构体变量成员的是
A)scanf(“%s”,s[0].name); B)scanf(“%d”,&s[0].age);
C)scanf(“%c”,&(ps>sex)); D)scanf(“%d”,ps>age);
(46)若有以下定义和语句
union data
{ int i; char c; float f;}x;
int y;
则以下语句正确的是
A)x=10.5; B)x.c=101;C)y=x; D)printf(“%d\n”,x);
(47)若变量已正确定义,则以下语句的输出结果是
s=32; s^=32;printf(“%d”,s);
A)-1 B)0 C)1D)32
(48)若程序中有宏定义行:#define N 100则以下叙述中正确的是
A)宏定义行中定义了标识符N的值为整数100
B)在编译程序对C源程序进行预处理时用100替换标识符N
C)对C源程序进行编译时用100替换标识符N
D)在运行时用100替换标识符N
(49)以下叙述中正确的是
A)C语言中的文件是流式文件,因此只能顺序存取数据
B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
(50)有以下程序
#include
main()
{FILE*fp; int i;
char ch[]=”abcd”,t;
fp=fopen(“abc.dat”,”wb+”);
for(i=0;i<4;i++)fwriter&ch[],1,1fp;
fseek(fp,-2L,SEEK_END);
fread(&t,1,1,fp);
fclose(fp);
printf(“%c\n”,t);
}
程序执行后的输出结果是
A)d B)cC)b D)a
二、填空题(每空2分,共40分)
(1)在面向对象方法中,类之间共享属性和操作的机制称为【1】。
(2)一个关系表的行称为【2】。
(3)耦合和内聚是评价模块独立性的两个主要标准,其中【3】反映了模块内各成分之间的联系。
(4)线性表的存储结构主要分为顺序存储结构和链式存储结构.队列是一种特殊的线性表,循环队列是队列的【4】存储结构.
(5)【5】的任务是诊断和改正程序中的错误。
(6)以下程序的输出结果是【6】.
#include
main()
{ int n=12345,d;
while(n!=0){ d=n%10; printf(“%d”,d); n/=10;}
}
(7)以下程序运行后的输出结果是【7】。
main()
{
int m=011,n=11;
printf(“%d%d\n”,++m,n++);
}
(8)有以下程序,若运行时从键盘输入:18,11,则程序输出结果是【8】。
main()
{int a,b;
printf(“Enter a,b:”);scanf(“%d,%d”,&a,&b);
while(a!=b)
{ while(a>b) a-=b;
while(b>a) b-=a;
}
printf(“%3d%3d\n”,a,b);
}
(9)有以下程序段,且变量已正确定义和赋值
for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1));
printf(“s=%f\n\n”,s);
请填空,使下面程序段的功能为完全相同
s=1.0;k=1;
while(_【9】_______){ s=s+1.0/(k*(k+1)); _【10】_______;}
printf(“s=%f\n\n”,s);
(10)执行以下程序的输出结果是【11】______.
#include
main()
{ int i,n[4]={1};
for(i=1;i<=3;i++)
{ n=n[i-1]*2+1; printf(“%d”,n);}
}
(11)以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.请填空.
#include
viod f(int x[],int n)
{ int p0,p1,i,j,t,m;
i=j=x[0]; p0=p1=0;
for(m=0;m{ if(x[m]>i){i=x[m]; p0=m;}
else if(x[m]}
t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;
t=x[p1];x[p1]= _【12】_______;【13】______=t;
}
main()
{ int a[10],u;
for(u=0;u<10;u++) scanf(“%d”,&a);
f(a,10);
for(u=0;u<10;u++) printf(“%d”,a);
printf(“\n”);
}
(12)下列程序中的函数strcpy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新的字符串。例如,若t所指字符串为efgh,调用strcpy2后,s所指字符串为efghefgh。请填空。
#include
#include
void strcpy2(char*s,char*t)
{ char*p=t;
while(*s++=*t++);
s=【14】;
while(【15】=*p++);
}
main()
{ char str1[100]=”abcd”,str2[]=”efgh”;
strcpy2(str1,str2); printf(“%s\n”,str1);
}
(13)以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其它依次类推.用#号结束输入,请填空.
#include
#include
main()
{ int num[26]={0},i; char c;
while((_【16】_______)!='#')
if(isupper(c)) num[c-‘A’]+=【17】_______;
for(i=0;i<26;i++)
Printf(“%c:%d\n”,i+'A',num);
}
(14)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
请填空。
#include”math.h”
double fun(double x){return(x*x-2*x+6);}
main()
{
double x,y1,y2;
printf(“Enter x:”);scanf(“%lf”,&x);
y1=fun(【18】);
y2=fun(【19】);
printf(“y1=%lf,y2=%lf\n”,y1,y2);
}
(15)以下程序的输出结果是_【20】______.
#include
#define M 5
#define N M+M
main()
{ int k;
k=N*N*5; printf(“%d\n”,k);
}
一、选择题答案:
1-10:CACDC DADBA11-20:BDDBACCCCB 21-30:DCBCACCBCA
31-40:CCDABDCDAB41-50:CABCDBBBDB
二、填空题答案:
1.继承2.元组3.内聚4.顺序 5.程序调试
6. 54321 7.1011 8. 1 9.k<=nk++
10. 3 7 5 11.x[0]x[0] 12.s–,*s++ 13.c=getchar() 14.(x+8),sin(x) 15.55
希望对你有所帮助
2011年三月全国计算机二级c真题及答案
2011年3月计算机二级c真题
一、选择题
(1)下列关于栈叙述正确的是
A)栈顶元素最先能被删除
B)栈顶元素最后才能被删除
C)栈底元素永远不能被删除
D)以上三种说法都不对
(2)下列叙述中正确的是
A)有一个以上根结点的数据结构不一定是非线性结构
B)只有一个根结点的数据结构不一定是线性结构
C)循环链表是非线性结构
D)双向链表是非线性结构
(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)
A)3 B)4 C)6 D)7
(4)在软件开发中,需求分析阶段产生的主要文档是
A)软件集成测试计划 B)软件详细设计说明书
C)用户手册 D)软件需求规格说明书
(5)结构化程序所要求的基本结构不包括
A)顺序结构 B)GOTO跳转
C)选择(分支)结构 D)重复(循环)结构
(6)下面描述中错误的是
A)系统总体结构图支持软件系统的详细设计
B)软件设计是将软件需求转换为软件表示的过程
C)数据结构与数据库设计是软件设计的任务之一
D)PAD图是软件详细设计的表示工具
(7)负责数据库中查询操作的数据库语言是
A)数据定义语言
B)数据管理语言
C)数据操纵语言
D)数据控制语言
(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是
A)1:1联系 B)1:m联系
C)m:1联系 D)m:n联系
(9)有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是
A)自然连接 B)交 C)除 D)并
(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是
A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5}
(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是
A)C语言程序仅可以编译执行
B)C语言程序仅可以解释执行
C)C语言程序既可以编译执行又可以解释执行
D)以上说法都不对
(12)以下叙述中错误的是
A)C语言的可执行程序是由一系列机器指令构成的
B)用C语言编写的源程序不能直接在计算机上运行
C)通过编译得到的二进制目标程序需要连接才可以运行
D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
>(13)以下选项中不能用作C程序合法常量的是
A)1,234 B)'123'
C)123 D)”\x7G”
(14)以下选项中可用作C程序合法实数的是
A).1e0 B)3.0e0.2
C)E9 D)9.12E
(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是
A)a=(b=4)=3; B)a=b=c+1;
C)a=(b=4)+c; D)a=1+(b=c=4);
(16)有以下程序段
char name[20];
int num;
scanf(“name=%s num=%d”,name;&num);
当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为
A)Lili
B)name=Lili
C)Lili num=
D)name=Lili num=1001
(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是
A)必须是逻辑值 B)必须是整数值
C)必须是正数 D)可以是任意合法的数值
(18)有以下程序
#include
main()
{ int x=011;
printf(“%d\n”,++x);
}
程序运行后的输出结果是
A)12 B)11 C)10 D)9
(19)有以下程序
#include
main()
{ int s;
scanf(“%d”,&s);
while(s>0)
{ switch(s)
{ case1:printf(“%d”,s+5);
case2:printf(“%d”,s+4); break;
case3:printf(“%d”,s+3);
default:printf(“%d”,s+1);break;
}
scanf(“%d”,&s);
}
}
运行时,若输入1 2 3 4 5 0<回车>,则输出结果是
A)6566456 B)66656 C)66666 D)6666656
(20)有以下程序段
int i,n;
for(i=0;i<8;i++)
{ n=rand()%5;
switch(n)
{ case 1:
case 3:printf(“%d\n”,n); break;
case 2:
case 4:printf(“%d\n”,n); continue;
case 0:exit(0);
}
printf(“%d\n”,n);
}
以下关于程序段执行情况的叙述,正确的是
A)for循环语句固定执行8次
B)当产生的随机数n为4时结束循环操作
C)当产生的随机数n为1和2时不做任何操作
D)当产生的随机数n为0时结束程序运行
(21)有以下程序
#include
main()
{ char s[]=”012xy\08s34f4w2″;
int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>='0'&&s[i]<='9') n++;
printf(“%d\n”,n);
}
程序运行后的输出结果是
A)0 B)3 C)7 D)8
(22)若i和k都是int类型变量,有以下for语句
for(i=0,k=-1;k=1;k++) printf(“*****\n”);
下面关于语句执行情况的叙述中正确的是
A)循环体执行两次
B)循环体执行一次
C)循环体一次也不执行
D)构成无限循环
(23)有以下程序
#include
main()
{ char b,c; int i;
b='a'; c='A';
for(i=0;i<6;i++)
{ if(i%2) putchar(i+b);
else putchar(i+c);
} printf(“\n”);
}
程序运行后的输出结果是
A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef
(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是
A)scanf(“%f”,&x[6]); B)scanf(“%lf”,*(x+6));
C)scanf(“%lf”,p+6); D)scanf(“%lf”,p[6]);
(25)有以下程序(说明:字母A的ASCII码值是65)
#include
void fun(char*s)
{ while(*s)
{ if(*s%2) printf(“%c”,*s);
s++;
}
}
main()
{ char a[]=”BYTE”;
fun(a); printf(“\n”);
}
程序运行后的输出结果是
A)BY B)BT C)YT D) YE
(26)有以下程序段
#include
main()
{…
while( getchar()
!='\n');
…
}
以下叙述中正确的是
A)此while语句将无限循环
B) getchar()不可以出现在while语句的条件表达式中
C)当执行此while语句时,只有按回车键程序才能继续执行
D)当执行此while语句时,按任意键程序就能继续执行
(27)有以下程序
#include
main()
{ int x=1,y=0;
if(!x) y++;
else if(x==0)
if(x) y+=2;
else y+=3;
printf(“%d\n”,y);
}
程序运行后的输出结果是
A)3 B)2 C)1 D) 0
(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是
A)p=s; B)p=k; C)p=s[0]; D)k=s;
(29)有以下程序
#include
void fun(char*c)
{ while(*c)
{ if(*c>='a'&&*c<='z')*c=*c-('a'-'A');
c++;
}
}
main()
{ char s[81];
gets(s); fun(s); puts(s):
}
当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是
A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing
(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
#include
#define N 10
void fun(int x[N])
{ int i=0;
while(i
}
在程序中下划线处应填入的是
A)x+i B)&x[i+1]
C)x+(i++) D)&x[++i]
(31)有以下程序
#include
main()
{ char a[30],b[30];
scanf(“%s”,a);
gets(b);
printf(“%s\n%s\n”,a,b);
}
程序运行时若输入:
how are you? I am fine<回车>
则输出结果是
A)how are you? B)how
I am fine are you? I am fine
C)how are you? I am fine
D)row are you?
(32)设有如下函数定义
int fun(int k)
{ if(k<1) return 0;
else if(k==1) return 1;
else return fun(k-1)+1;
}
若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是
A)2 B)3 C)4 D)5
(33)有以下程序
#include
int fun(int x,int y)
{ if(x!=y) return((x+y);2);
else return(x);
}
main()
{ int a=4,b=5,c=6;
printf(“%d\n”,fun(2*a,fun(b,c)));
}
程序运行后的输出结果是
A)3 B)6 C)8 D)12
(34)有以下程序
#include
int fun()
{ static int x=1;
x*=2;
return x;
}
main()
{ int i,s=1;
for(i=1;i<=3;i++) s*=fun();
printf(“%d\n”,s);
}
程序运行后的输出结果是
A)0 B)10 C)30 D)64
(35)有以下程序
#include
#define S(x) 4*(x)*x+1
main()
{ int k=5,j=2;
printf(“%d\n”,S(k+j));
}
程序运行后的输出结果是
A)197 B)143 C)33 D)28
(36)设有定义:struct{char mark[12];int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是
A)t1=t2; B)t2.num1=t1.num1;
C)t2.mark=t1.mark; D)t2.num2=t1.num2;
(37)有以下程序
#include
struct ord
{ int x,y;}dt[2]={1,2,3,4};
main()
{
struct ord*p=dt;
printf(“%d,”,++(p->x)); printf(“%d\n”,++(p->y));
}
程序运行后的输出结果是
A)1,2 B)4,1 C)3,4 D)2,3
(38)有以下程序
#i
nclude
struct S
{ int a,b;}data[2]={10,100,20,200};
main()
{ struct S p=data[1];
printf(“%d\n”,++(p.a));
}
程序运行后的输出结果是
A)10 B)11 C)20 D)21
(39)有以下程序
#include
main()
{ unsigned char a=8,c;
c=a>>3;
printf(“%d\n”,c);
}
程序运行后的输出结果是
A)32 B)16 C)1 D)0
(40)设fp已定义,执行语句fp=fopen(“file”,”w”);后,以下针对文本文件file操作叙述的选项中正确的是
A)写操作结束后可以从头开始读 B)只能写不能读
C)可以在原有内容后追加写 D)可以随意读和写
二、填空题
(1)有序线性表能进行二分查找的前提是该线性表必须是【1】存储的。
(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【2】。
(3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为【3】测试。
(4)实体完整性约束要求关系数据库中元组的【4】属性值不能为空。
(5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称【5】是关系A的外码。
(6)以下程序运行后的输出结果是【6】。
#include
main()
{ int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf(“%d\n”,a);
}
(7)有以下程序
#include
main()
{ int x;
scanf(“%d”,&x);
if(x>15) printf(“%d”,x-5);
if(x>10) printf(“%d”,x);
if(x>5) printf(“%d\n”,x+5);
}
若程序运行时从键盘输入12<回车>,则输出结果为【7】。
(8)有以下程序(说明:字符0的ASCII码值为48)
#include
main()
{ char c1,c2;
scanf(“%d”,&c1);
c2=c1+9;
printf(“%c%c\n”,c1,c2);
}
若程序运行时从键盘输入48<回车>,则输出结果为【8】。
(9)有以下函数
void prt(char ch,int n)
{ int i;
for(i=1;i<=n;i++)
printf(i%6!=0?”%c”:”%c\n”,ch);
}
执行调用语句prt('*',24);后,函数共输出了【9】行*号。
(10)以下程序运行后的输出结果是【10】。
#include
main()
{ int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf(“%d%d\n”,x,y);
}
(11)己知a所指的数组中有N个元素。函数fun的功能是,将下标k(k>0)开始的后续元素全部向前移动一个位置。请填空。
void fun(int a[N],int k)
{ int i;
for(i=k;i
}
(12)有以下程序,请在【12】处填写正确语句,使程序可正常编译运行。
#include
【12】;
main()
{ double x,y,(*p)();
scanf(“%lf%lf”,&x,&y);
p=avg;
printf(“%f\n”,(*p)(x,y));
}
double avg(double a,double b)
{ return((a+b)/2);}
(13)以下程序运行后的输出结果是【13】。
#include
main()
{ int i,n[5]={0};
for(i=1;i<=4;i++)
{ n[i]==n[i-1]*2+1; printf(“%d”,n[i]);}
printf(“\n”);
}
(14)以下程序运行后的输出结果是【14】。
#include
#include
#include
main()
{ char*p; int i;
p=(char*)malloc(sizeof(char)*20);
strcpy(p,”welcome”);
for(i=6;i>=0;i–) putchar(*(p+i));
printf(“\n-“); free(p);
}
(15)以下程序运行后的输出结果是【15】。
#include
main()
{ FILE*fp; int x[6]={1,2,3,4,5,6},i;
fp=fopen(“test.dat”,”wb”);
fwrite(x,sizeof(int),3,fp);
rewind(fp);
fread(x,sizeof(int),3,fp);
for(i=0;i<6;i++) printf(“%d”,x[i]);
printf(“\n”);
fclose(fp);
}
2011年3月计算机二级c答案:
一、选择题
01-10:ABDDBACDCB
11-20:ADBAAADCAD
21-30:BDBCDCDCCC
31-40:BBBDBCDDCB
二、填空题
1.有序 2.DEBFCA 3.单元 4.主 5.D 6.3 7.1217 8.09 9.4 10.20 0
11.i-1 12.doubleavg(doublea, doubleb); 13.13715 14.emoclew 15.123456
急!!历年国家计算机二级c语言笔试真题答案。
2010年9月全国计算机二级C语言笔试试题:文字版
一、选择题(每小题2分,共70分)
下列各题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)层次型、网状型和关系型数据库划分原则是
A)记录长度
B)文件的大小
C)联系的复杂程度
D)数据之间的联系方式
(8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是
A)一对一
B)一对多
C)多对多
D)多对一
(9)数据库设计中反映用户对数据要求的模式是
A)内模式
B)概念模式
C)外模式
D)设计模式
(10)有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是
A)自然连接
B)交
C)投影
D)并
(11)以下关于结构化程序设计的叙述中正确的是
A)一个结构化程序必须同时由顺序、分支、循环三种结构组成
B)结构化程序使用goto语句会很便捷
C)在C语言中,程序的模块化是利用函数实现的
D)由三种基本结构构成的程序只能解决小规模的问题
(12)以下关于简单程序设计的步骤和顺序的说法中正确的是
A)确定算法后,整理并写出文档,最后进行编码和上机调试
B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档
C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档
D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构
(13)以下叙述中错误的是
A) C程序在运行过程中所有计算都以二进制方式进行
B)C程序在运行过程中所有计算都以十进制方式进行
C)所有C程序都需要编译链接无误后才能运行
D)C程序中整型变量只能存放整数,实型变量只能存放浮点数
(14)有以下定义:inta; longb; doublex,y;则以下选项中正确的表达式是
A)a%(int)(x-y)
B)a=x!=y;
C)(a*y)%b
D)y=x+y=x
(15)以下选项中能表示合法常量的是
A)整数:1,200
B)实数:1.5E2.0
C)字符斜杠:‘\’
D)字符串:”\007″
(16)表达式a+=a-=a=9的值是
A)9
B)_9
C)18
D)0
(17)若变量已正确定义,在if(W)printf(“%d\n,k”);中,以下不可替代W的是
A)a<>b+c
B)ch=getchar()
C)a==b+c
D)a++
(18)有以下程序
#include<stdio.h>
main()
{inta=1,b=0;
if(!a) b++;
elseif(a==0)if(a)b+=2;
elseb+=3;
printf(”%d\n”,b);
}
程序运行后的输出结果是
A)0
B)1
C)2
D)3
(19)若有定义语句int a, b;double x;则下列选项中没有错误的是
A)switch(x%2) B)switch((int)x/2.0
{case 0: a++; break;{case 0: a++; break;
case 1: b++; break; case 1: b++; break;
default: a++; b++; default: a++; b++;
}}
C)switch((int)x%2)D)switch((int)(x)%2)
{case 0: a++; break;{case 0.0: a++; break;
case 1: b++; break;case 1.0: b++; break;
default: a++; b++;default: a++; b++;
}}
(20)有以下程序
#include<stdio.h>
main()
{int a=1,b=2;
while(a<6){b+=a;a+=2;b%二10;}
printf(”%d,%d\n”,a,b);
}
程序运行后的输出结果是
A)5,11
B)7,1
C)7,11
D)6,1
(21)有以下程序
#include<stdio.h>
main()
{int y=10;
while(y–);
printf(”Y=%d\n”,Y);
}
程序执行后的输出结果是
A)y=0
B)y=-1
C)y=1
D)while构成无限循环
(22)有以下程序
#include<stdio.h>
main()
{char s〔」=”rstuv”;
printf(”%c\n”,*s+2);
}
程序运行后的输出结果是
A)tuv
B)字符t的ASCII码值
C)t
D)出错
(23)有以下程序
#include<stdio.h>
#include<string.h>
main()
{char x〔〕=”STRING”;
x〔0」=0;x〔1〕=’\0’;x〔2」=’0’;
printf(”%d%d\n”,sizeof(x),strlen(x));
}
程序运行后的输出结果是
A)61
B)70
C)63
D)71
(24)有以下程序
#include<stdio.h>
Int f(intx);
main()
{intn=1,m;
m=f(f(f(n)));printf(”%d\n”,m);
}
intf(intx)
{returnx*2;}
程序运行后的输出结果是
A)1
B)2
C)4
D)8
(25)以下程序段完全正确的是
A)int*p;scanf(”%d”,&p);
B)int*p;scanf(“%d”,p);
C)int k,*p=&k;scanf(”%d”,p);
D)int k,*p:;*p=&k; scanf(“%d”,p);
(26)有定义语句:int*p[4];以下选项中与此语句等价的是
A)intp[4];
B)int**p;
C)int*(p「4」);
D)int(*p)「4」;
(27)下列定义数组的语句中,正确的是
A)intN=10;B)#define N 10
intx[N];int x[N];
C)intx[0..10〕;D)int x〔〕;
(28)若要定义一个具有5个元素的整型数组,以下错误的定义语句是
A)inta[5]={0};
B)intb[]={0,0,0,0,0};
C)intc[2+3];
D)inti=5,d[i];
(29)有以下程序
#include<stdio.h>
voidf(int*p);
main()
{inta〔5〕={1,2,3,4,5},*r=a;
f(r);printf(”%d\n”;*r);
}
void f(int*p)
{p=p+3;printf(”%d,”,*p);}
程序运行后的输出结果是
A)1,4
B)4,4
C)3,1
D)4,1
(30)有以下程序(函数fun只对下标为偶数的元素进行操作)
# include<stdio.h>
void fun(int*a;int n)
{int i、j、k、t;
for(i=0;i<n一1;1+=2)
{k=i;‘
for(j=i;j<n;j+=2)if(a〔j〕>a〔k])k=j;
t=a〔i];a〔i]=a〔k];a〔k]=t;
}
}
main()
{int aa「10」={1、2、3、4、5、6、7},i;
fun(aa、7);
for(i=0,i<7; i++)printf(”%d,”,aa〔i〕));
printf(”\n”);
}
程序运行后的输出结果是
A)7,2,5,4,3,6,1
B)1,6,3,4,5,2,7
C)7,6,5,4,3,2,1
D)1,7,3,5,6;2,1
(31)下列选项中,能够满足“若字符串s1等于字符串s2,则执行ST”要求的是
A)if(strcmp(s2,s1)==0)ST;
B)if(sl==s2)ST;
C)if(strcpy(s l,s2)==1)ST;
D)if(sl-s2==0)ST;
(32)以下不能将s所指字符串正确复制到t所指存储空间的是
A)while(*t=*s){t++;s++;}
B)for(i=0;t[i]=s[i〕;i++);
C)do{*t++=*s++;}while(*s);
D)for(i=0,j=0;t[i++]=s[j++];);
(33)有以下程序( strcat函数用以连接两个字符串)
#include<stdio.h>
#include<string.h>
main()
{char a〔20〕=”ABCD\OEFG\0”,b〔〕=”IJK”;
strcat(a,b);printf(”%s\n”,a);
}
程序运行后的输出结果是
A)ABCDE\OFG\OIJK
B)ABCDIJK
C)IJK
D)EFGIJK
(34)有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母
#include<stdio.h>
#include<ctype.h>
voidfun(char*p)
{inti=0;
while(p[i〕)
{if(p[i]==’’&& islower(p「i-1」))p[i-1]=p[i-1]-‘a’+‘A’;
i++;
}
}
main()
{char s1〔100〕=”ab cd EFG!”;
fun(s1); printf(”%s\n”,s1);
}
程序运行后的输出结果是
A)abcdEFG!
B)AbCdEFg!
C)aBcDEFG!
D)abcdEFg!
(35)有以下程序
#include<stdio.h>
voidfun(int x)
{if(x/2>1)fun(x/2);
printf(”%d”,x);
}
main()
{fun(7);printf(”\n”);}
程序运行后的输出结果是
A)1 3 7
B)7 3 1
C)7 3
D)3 7
(36)有以下程序
#include<stdio.h>
int fun()
{static int x=1;
x+=1;return x;
}
main()
{int i;s=1;
for(i=1;i<=5;i++)s+=fun();
printf(”%d\n”,s);
}
程序运行后的输出结果是
A)11
B)21
C)6
D)120
(37)有以下程序
#inctude<stdio.h>
#include<stdlib.h>
Main()
{int*a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b;
printf(“%d,%d,%d\n”,*a,*b,*c);
}
程序运行后的输出结果是
A)3,3,3B)2,2,3C)1,2,3D)1,1,3
(38)有以下程序
#include<stdio.h>
main()
{int s,t,A=10;double B=6;
s=sizeof(A);t=sizeof(B);
printf(“%d,%d\n”,s,t);
}
在VC6平台上编译运行,程序运行后的输出结果是
A)2,4B)4,4C)4,8D)10,6
(39)若有以下语句
Typedef struct S
{int g; char h;}T;
以下叙述中正确的是
A)可用S定义结构体变量
B)可用T定义结构体变量
C)S是struct类型的变量
D)T是struct S类型的变量
(40)有以下程序
#include<stdio.h>
main()
{short c=124;
c=c_______;
printf(“%d\n”、C);
}
若要使程序的运行结果为248,应在下划线处填入的是
A)>>2 B)|248 C)&0248D)<<I
二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
(1)一个栈的初始状态为空。首先将元素5,4,3,2,1依次入栈,然后退栈一次,再将元素 A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为【1】
(2)在长度为n的线性表中,寻找最大项至少需要比较【2】次。
(3)一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有【3】个结点。
(4)仅由顺序、选择(分支)和重复(循环)结构构成的程序是【4】程序。
(5)数据库设计的四个阶段是:需求分析,概念设计,逻辑设计【5】。
(6)以下程序运行后的输出结果是【6】。
#include<stdio.h>
main()
{int a=200,b=010;
printf(”%d%d\n”,a,b);
}
(7)有以下程序
#include<stdio.h>
main()
{intx,Y;
scanf(”%2d%ld”,&x,&y);printf(”%d\n”,x+y);
}
程序运行时输入:1234567程序的运行结果是【7】。
(8)在C语言中,当表达式值为0时表示逻辑值“假”,当表达式值为【8】时表示逻辑值“真”。
(9)有以下程序
#include<stdio.h>
main()
{int i,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*3+1; printf(”%d”,n[i]);}
}
程序运行后的输出结果是【9】。
(10)以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回。请填空。(设N已定义)
int fun(int x〔N〕)
{int i,k=0;
for(i=0;i<N;I++)
if(x〔i〕
return x〔k〕;
}
(11)有以下程序
#include<stdio.h>
int*f(int*p,int*q);
main()
{int m=1,n=2,*r=&m;
r=f(r,&n);printf(”%d\n”,*r);
}
int*f(int*p,int*q)
{return(*p>*q)?p:q;}
程序运行后的输出结果是【11】
(12)以下fun函数的功能是在N行M列的整形二维数组中,选出一个最大值作为函数值返回,请填空。(设M,. N已定义)
int fun(int a〔N〕[M))
{int i,j,row=0,col=0;
for(i=0;i<N;I++)
for(j=0;j
if(a〔i〕〔j〕>a〔row〕〔col〕){row=i;col=j;}
return(【12】):
}
(13)有以下程序
#include<stdio.h>
main()
{intn[2],i,j;
for(i=0;i<2;i++)n[i]=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)n〔j〕=n「i」+1;
printf(”%d\n”,n[1]);
}
程序运行后的输出结果是【13】
(14)以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。
#include<stdio.h>
main()
{int a〔10〕,*p,*s;
for(p=a;p-a<10;p++)scanf(”%d”,p);
for(p=a,s=a;p-a<10;p++)if(*p>*s)S=P;
printf(”max=%d\n”,【14】);
}
(15)以下程序打开新文件f.txt,并调用字符输出函数将a数组中的字符写入其中,请填空。
#include<stdio.h>
main()
{【15】*fp;
char a〔5〕={’1’,’2’,’3’,’4’,’5’},i;
fp=fopen(”f.txt”,”w”);
for(i=0;i<5;i++)fputc(a[i],fp);
fclose(fp);
OK,关于二级c语言真题和二级c语言真题2006年09月的内容到此结束了,希望对大家有所帮助。




