2010年9月计算机等考二级C语言真题及答案

实验十
一、实验目的
通过本试验,使学生理解面向对象程序设计方法中I/O流的基本概念及基本
语法;掌握I/O流类的基本使用方法;理解文件的概念;掌握文本文件的读写操
作。

二、实验内容
1.通过程序实例,理解I/O流的概念、I/O流类的基本语法;理解文件流
及相关术语;理解文本文件的特点和读写机制。
2.编写教材练习8中5、6、8、9要求的程序,并完成上机调试的实验任务。
三、实验准备
1.复习第八章的内容,重点是8.2、8.3节的内容及相关例题;
2.编写教材练习8中5、6、8、9要求的程序。
四、实验任务

任务一:练习8第5题
1.内容:编写一个程序,将从键盘上输入的一串字符存入一个名为
filel.txt的文件,以“#”作为输入的结束。
2.源程序:
#include
#include
voidmain()
{
charstr[999];
ofstreamf("file.txt",ios::out);
if(!f)
{
cout<<"Cannotopenthefile!"<exit(1);
}
cin>>str;
for(inti=0;str[i]!='#';i++)
f.put(str[i]);
f.close();
}
3.
运行结果:

file.txt
4.实验中遇到的主要问题及解决方法
任务二:练习8第6题
1.内容:使用I/O流打开第5题建立的文件filel.txt,读出其内容并显示
出来。
2.源程序:
#include
#include
voidmain()
{
ifstreamf("file.txt",ios::in);
if(!f)
{
cout<<"Cannotopenthefile!"<}
charch;
do
{
f.get(ch);
cout<}while(ch!='#');
f.close();
}
3.运行结果:
4.实验中遇到的主要问题及解决方法
任务三:练习8第8题
1.内容:输入一串有字母和数字混合的字符串,编程序将字符串中的字母和
数字分开,分别存入两个不同的文件。
2.源程序:
#include
#include
voidmain(){
charstr[80];
ofstreamf1("file1.txt");
if(!f1){cout<<"Cannotopenthefile1!"<exit(1);}
ofstreamf2("file2.txt");
if(!f2){cout<<"Cannotopenthefile2!"<exit(1);}
cout<<"请输入一串字符:"<cin>>str;
for(inti=0;i<80&&str[i];i++)
if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')
f1.put(str[i]);
elseif(str[i]>='0'&&str[i]<='9')
f2.put(str[i]);
f1.close();
f2.close();
}
4.运行结果:
file1.txtfile2.txt
4.实验中遇到的主要问题及解决方法
任务四:练习8第9题
1.内容:将1!、2!、3!、……、10!各值存入data.txt文件,要求在文件
中每个值占一行。
2.源程序:
#include
#include
voidmain(){
intcount=0;
ofstreamoutfile("d:\\data.dat");
if(!outfile)exit(1);
inta[10]={1,1,1,1,1,1,1,1,1,1},i,n=1;
do
{
for(i=1;i<=n;i++)a[n]*=i;
outfile<n++;
}while(n<11);
outfile.close();
}

5.
运行结果:

data.dat
4.实验中遇到的主要问题及解决方法
五、教师评分
(百分制)

合集下载

全国计算机二级C语言笔试历届真题汇编2006年4月-2010年9月

全国计算机二级C语言笔试历届真题汇编2006年4月-2010年9月

2010年9月全国计算机二级C语言笔试试题一、选择题(每小题2分,共70分)(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)有以下定义:int a;long b;doublex,y;则以下选项中正确的表达式是A)a%(int)(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x(15)以下选项中能表示合法常量的是A)整数:1,200B)实数:1.5E2.0C )字符斜杠:‘\’D)字符串:"\007"(16)表达式a+=a-=a=9的值是A)9 B)_9C)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(){int a=1,b=0;if(!a)b++;else if(a==0)if(a)b+=2;else b+=3;printf(”%d\n”,b);}程序运行后的输出结果是A)0 B)1C)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,1C)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= -1C)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)6 1 B)7 0C)6 3 D)7 1(24)有以下程序#include<stdio.h>Int f(int x);main(){int n=1,m;m=f(f(f(n)));printf(”%d\n”,m); }int f(int x){return x*2;}程序运行后的输出结果是A)1 B)2C)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)int p[4]; B)int **p;C)int *(p「4」); D)int (*p)「4」;(27)下列定义数组的语句中,正确的是A)int N=10;B)#define N 10int x[N]; int x[N];C)int x[0..10];D)int x[];(28)若要定义一个具有5个元素的整型数组,以下错误的定义语句是A)int a[5]=﹛0﹜;B)int b[]={0,0,0,0,0};C)int c[2+3];D)int i=5,d[i];(29)有以下程序#include<stdio.h>void f(int *p);main(){int a[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,4C)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,1B)1,6,3,4,5,2,7C)7,6,5,4,3,2,1D)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\OIJKB)ABCDIJKC)IJKD)EFGIJK(34)有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母#include<stdio.h>#include<ctype.h>void fun(char*p){int i=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)ab cd EFG!B)Ab Cd EFg!C)aB cD EFG!D)ab cd EFg!(35)有以下程序#include<stdio.h>void fun(int x){if(x/2>1)fun(x/2);printf(”%d”,x);}main(){fun(7);printf(”\n”);}程序运行后的输出结果是A)1 3 7 B)7 3 1C)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)21C)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,3 B)2,2,3C)1,2,3 D)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,4 B)4,4 C)4,8 D)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)&0248 D)<<I二、填空题(每空2分,共30分)(1)一个栈的初始状态为空。

2010年秋季江苏省计算机二级C语言真题(笔试)

2010年秋季江苏省计算机二级C语言真题(笔试)

2010年(秋季)江苏省计算机等级考试二级笔试试卷C语言程序设计(考试时间120分钟,满分60分)一、选择题((1)~(30)每小题1分,共30分)1.微电子技术是信息技术领域中的关键技术,它以集成电路为核心.下列有关集成电路的敘述中,错误的是A.现代集成电路使用的半导体材料只能是硅(si),不能使用其它任何半导体材料B.集成度是指集成电路包含的电子元件数目,可分为SSI、MSI、VLSI等C.moore定律指出,单块集成电路的集成度平均18~24个月翻一番D.我国第二代身份证中嵌入了集成电路芯片,可以实现电子防伪和数字管理功能2. 数据传输速率是数据通信中重要的性能指标。

Gb/s是数据传输速率的计量单位之一,其正确含义是A.每秒兆位B.每秒千兆位C.每秒百兆位D.每秒百万位3,所谓"变号操作"是指格一个整数变成绝对值相同但符号相反的另一个整数。

假设使用补码表示的8位整数x=10010101,则经过变号操作后结果为A.01101010B.00010101C.11101010D.011010114. 下列有关PC机主拔的敘述中,错误的是A.主板的物理尺寸没有标准,各厂家均可自行定义B.主板上包含芯片组,它是PC机各组成部分相互连接和通信的枢纽C.主拔上包含BIOS和CMOS芯片D.主板上包含CPU插座、内存条插槽及其他类型的插槽5. 下列有关PC机中央处理器(CPU)和内存(内存条)的叙述中,正确的是A.PC机所采用的CPU都是intel公司生产的pentium系列芯片,其它厂商生产的CPU都与之不兼容B.目前已有双核的微处理器(例如Core2Duo),但还没有四核的微处理器C.通常来说,DRAM的速度比SRAM的存取速度慢D.一般来说,一个内存条上仅有一个DRAM或SRAM芯片6. 下列有关PC机I/O总线与I/O接口的叙述中,错误的是A. 目前PC机中协调与管理总线操作的总线控制器包含在主板上的芯片组中B.总线最重要的性能是数据传输率,其单位通常为MB/s或GB/sC.SATA接口的数据传输速率通常低于USB2.0的数据传输速率D.UCB连接器有4个引脚,其中一个脚引连接+5V电源7. 下列有关PC机常用I/0设备的叙述中,错误的是A.目前台式机键盘通常有一百零几个按键,笔记本电脑的键盘有八十几个按键B.目前流行的鼠标是光电鼠标,其与主机的接口有PS/2与USB两种C.宽屏LCD显示器的宽高比为16:9或16:10D.打印速度是打印机的重要性能指标,速度单位通常为dpi8. 下列有关PC机外存储器的叙述中,错误的是A.目前的硬盘片大多为35、25或1.8英寸,一个硬盘中可有一个或多个盘片B.目前有些U盘可以模拟硬盘和光盘存储器启动操作系统C.目前光盘存储器主要分为CD、DVD和BD三种,它们均采用红外激光进行读写D.目前光驱的速率通常用多少倍速表示9.下列有关计算机软件的叙述中,错误的是A.软件一般是指程序及其相关的数据和文档资料B.从软件的用途考虑,软件可分为系统软件和应用软件,主要的系统软件有操作系统、语言处理系统和数据库处理系统等。

2010年9月全国计算机等级考试二级C语言考试大纲、真题与答案

2010年9月全国计算机等级考试二级C语言考试大纲、真题与答案

2021年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〕有以下定义:int a; long b; double x,y;则以下选项中正确的表达式是A〕a%〔int〕〔x-y〕B〕a=x!=y;C〕〔a*y〕%bD〕y=x+y=x〔15〕以下选项中能表示合法常量的是A〕整数:1,200C 〕字符斜杠:‘\’ D〕字符串:"\007"〔16〕表达式a+=a-=a=9的值是A〕9 B〕_9C〕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〔〕{int a=1,b=0;if〔!a〕 b++;else if〔a==0〕if〔a〕b+=2;else b+=3;printf〔〞%d\n〞,b〕;}程序运行后的输出结果是A〕0 B〕1C〕2 D〕3〔19〕假设有定义语句int a, b;double x;则以下选项中没有错误的选项是{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,11B〕7,1C〕7,11D〕6,1〔21〕有以下程序#include<stdio.h>main〔〕{int y=10;while〔y--〕;printf〔〞Y=%d\n〞,Y〕;}程序执行后的输出结果是A〕y=0B〕y= -1C〕y=1D〕while构成无限循环〔22〕有以下程序#include<stdio .h>main〔〕{char s[」=〞rstuv";printf〔〞%c\n〞,*s+2〕;}程序运行后的输出结果是A〕tuvB〕字符t的ASCII码值C〕tD〕出错〔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〕6 1B〕7 0C〕6 3D〕7 1〔24〕有以下程序#include<stdio.h>Int f〔int x〕;main〔〕{int n=1,m;m=f〔f〔f〔n〕〕〕;printf〔〞%d\n〞,m〕;}int f〔int x〕{return x*2;}程序运行后的输出结果是A〕1B〕2C〕4D〕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〕int p[4];B〕int **p;C〕int *〔p「4」〕;D〕int 〔*p〕「4」;〔27〕以下定义数组的语句中,正确的选项是A〕int N=10; B〕#define N 10int x[N]; int x[N];C〕int x[0..10]; D〕int x[];〔28〕假设要定义一个具有5个元素的整型数组,以下错误的定义语句是A〕int a[5]=﹛0﹜;B〕int b[]={0,0,0,0,0};C〕int c[2+3];D〕int i=5,d[i];〔29〕有以下程序#include<stdio.h>void f〔int *p〕;main〔〕{int a[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,4B〕4,4C〕3,1D〕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,1B〕1,6,3,4,5,2,7C〕7,6,5,4,3,2,1D〕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\OIJKB〕ABCDIJKC〕IJKD〕EFGIJK〔34〕有以下程序,程序中库函数islower 〔ch〕用以推断ch中的字母是否为小写字母#include<stdio.h>#include<ctype.h>void fun〔char*p〕{int i=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〕ab cd EFG!B〕Ab Cd EFg!C〕aB cD EFG!D〕ab cd EFg!〔35〕有以下程序#include<stdio.h>void fun〔int x〕{if〔x/2>1〕fun〔x/2〕;printf〔〞%d〞,x〕;}main〔〕{fun〔7〕;printf〔〞\n〞〕;}程序运行后的输出结果是A〕1 3 7B〕7 3 1C〕7 3D〕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〕11B〕21C〕6D〕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,3 B〕2,2,3 C〕1,2,3 D〕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,4 B〕4,4 C〕4,8 D〕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〕&0248 D〕<<I二、填空题〔每空2分,共30分〕请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。

2010上半年计算机等考二级C语言真题及答案

2010上半年计算机等考二级C语言真题及答案

《C++语言程序设计》第一次作业讲评说明:本次作业对应教材第一、二、三章的内容。

【讲评】本章主要考核大家对C++语言的基本概念、基本数据类型和表达式、流程控制的掌握程度,其中有一些需要记忆的概念,但多数问题还是需要理解的,希望通过作业讲评能够帮助大家把学习中的难题一一解决。

下面是对部分问题的讲评。

一、填空题1.C++语言中的每条基本语句以;作为结束符,每条复合语句以}作为结束符。

2.用于输出表达式值的标准输出流对象是cout,用于从键盘上为变量输入值的标准输入流对象是cin 。

3.当不需要函数返回任何值时,则应把该函数类型定义为void 。

4.执行“cout<<143<<’+’<<18<<’=’<<143+18<<endl;”语句后得到的输出结果为143+18=161。

【讲评】这里143、’+’、18和’=’分别是整型变量、字符常量、整型变量和字符常量,在通过cout输出语句时直接将其值输出,而143+18是一个表达式,需要计算加法后输出其值。

5.执行“cout<<“ning”<<“chen”<<38<<endl;”语句后得到的输出结果为ningchen38 。

6.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为main。

7.C++源程序文件的缺省扩展名为.cpp ,由C++源程序文件编译而成的目标文件的缺省扩展名为.obj,由C++目标文件连接而成的可执行文件的缺省扩展名为 .exe。

8.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用空格或回车符号作为分隔符。

9.十进制数25表示成符合C++语言规则的八进制和十六进制数分别为031和0x19符号。

10.在C++语言中,用转义字符序列‘\n’或操纵符endl表示输出一个换行符。

11.执行“cout<<char(’b’+2)<<endl;”语句后得到的输出结果为d。

201009计算机二级C语言笔试真题文字_超详细答案解析

201009计算机二级C语言笔试真题文字_超详细答案解析

201009二级c真题一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D)上述三种说法都不对(1)B线性表的顺序存储结构是把线性表中相邻的元素存放在相邻的内存单元中,而链式存储结构是用一组任意存储单元来存放表中的数据元素,为了表示出每个元素与其直接后继元素之间的关系,除了存储元素本身的信息外,还需存储一个指示其直接后继的存储位置信息。

故线性表的链式存储结构所需的存储空间一般要多于顺序存储结构,答案为B)。

(2)下列叙述中正确的是A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D)上述三种说法都不对(2)C栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。

当有新元素进栈时,栈顶指针向上移动;当有元素出栈时,栈顶指针向下移动。

在栈中栈底指针不变,栈中元素随栈顶指针的变化而动态变化,故答案为C)。

(3)软件测试的目的是A)评估软件可靠性B)发现并改正程序中的错误C)改正程序中的错误D)发现程序中的错误(3)D软件测试的目的是为了发现程序中的错误而运行程序。

(4)下面描述中,不属于软件危机表现的是A)软件过程不规范B)软件开发生产率低C)软件质量难以控制D)软件成本不断提高4)A软件危机是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。

主要表现在以下几个方面:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件可维护性差;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。

2010年9月笔试试卷及参考答案

2010年9月笔试试卷及参考答案

2010年9月全国计算机二级C笔试题(及参考答案)一、选择题(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: A B C______a 1 2b 2 1c 3 1S: A D_______c 4T: A B C D________c 3 1 4则由关系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)有以下定义:int a;long b;double x,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(){int a=1,b=0;if(!a) b++;else if(a==0) if(a) b+=2;else b+=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<stdio.h>main(){char x[]=”STRING”;x[0]=0; x[1]=’\0’;x[2]=’0’;printf(“%d %d\n”,sizeof(x),srlen(x));}程序运行后的输出结果是A) 6 1 B) 7 0 C) 6 3 D) 7 1(24)有以下程序#include<stdio.h>int f(int x);main (){int n=1,m;m=f(f(f(n))); printf(“%d\n”,m);}int f(int x){ return x*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)int p[4]; B)int **p; C)int *(p[4]); D) int (*p)[4];(27) 下列定义数组的语句中,正确的是A)int N=10; B) #define N 10int x[N]; int x[N];C)int x[0,10]; D)int x[];(28)若要定义一个具有5个元素的整形数组,以下错误的定义语句是A)int a[5]={0}; B) int b[]={0,0,0,0,0};C) int c[2+3]; D) int i=5,d;(29)有以下程序#include <stdio.h>void f(int *p);main(){int a[5]={1,2,3,4,5}; *r=a;f(r); print(“%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只对下标为偶数的无素进行操作)#iinclude<stdio.h>Void fun(int *a,int n){int i,j,k,t;for{i=0;i<n-1;i+=2}{k=i;for{j=i j<n;j+=2} if(a[j]>a[k]) k=j;t=a;a=a[k];a[k]=t;}}main{}{int ????????????????fun(aa,7);for(i=0;i<7;i++)printf(“\\d,” ,aa);printf(“\n”);}程序运行后的输出结果是A)7,2,5,4,3,6,1 B)1,6,3,4,5,2,7C)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(s1==s2)ST;C)if(strcpy(s1,s2)==1)ST; D)if(s1-s2==0)ST;(32)以下不能将s 所指字符串正确复制到t所指存储空间的是A)while(“t=”s){t++;s++;} B)for(i=0;t=s;i++);C)do{????????????} D)for(i=0;j=0;???????????????)(33) 有以下程序( strcat函数用以连接两个字符串)#include<stdio.h>#include<string,h>main(){char a[20]=”ABCD\OEFG\0”,b[]=???????Strcat(a,b);printf(\\s\n,a);}程序运行后的输出结果是A)ABCDE\?FG\OUK B)ABCDUK C)UK D)EFGUK(34)有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母#include <stadio.h>#include <ctype.h>Void fun {char *p}{ int i=0;While <p>{if <p==’’&&islower<p[i-1]> p[i-1]=p[i-1]-‘a’+’A’;i++;}}main(){char sl[100]=”ab cd EFG!”;}程序运行后的输出结果是A)ab cd EFG ! B) Ab Cd EFg !C) aB cD EFG ! D) ab cd EFg !(35)有以下程序#include<stdio.h>Void fun{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<studio .h>Int fun{}{static int x=1;x+=1; retrun 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)有以下程序#include <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;pritf(“%d,%d,%d\n”,*a,*b,*c);}程序运行后的输出结果是A)3,3,3 B)2,2,3 C)1,2,3 D)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,4 B)4,4 C) 4,8 D)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)&0248 D)<<1二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。

9月全国计算机等级考试二级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)有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是A)a%(int)(x-y)B)a=x!=y;C)(a*y)%b D)y=x+y=x(15)以下选项中能表示合法常量的是A)整数:1,200B)实数:1.5E2.0 C )字符斜杠:‘\’D)字符串:"\007"(16)表达式a+=a-=a=9的值是A)9B)_9C)18D)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(){int a=1,b=0;if(!a)b++;else if(a==0)if(a)b+=2;else b+=3;printf(”%d\n”,b);}程序运行后的输出结果是A)0B)1C)2D)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,11B)7,1C)7,11D)6,1(21)有以下程序#include<stdio.h>main(){int y=10;while(y--);printf(”Y=%d\n”,Y);}程序执行后的输出结果是A)y=0B)y= -1C)y=1D)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)6 1B)7 0C)6 3D)7 1(24)有以下程序#include<stdio.h>Int f(int x);main(){int n=1,m;m=f(f(f(n)));printf(”%d\n”,m);}int f(int x){return x*2;}程序运行后的输出结果是A)1B)2C)4D)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)int p[4];B)int **p;C)int *(p「4」);D)int (*p)「4」; (27)下列定义数组的语句中,正确的是A)int N=10;B)#define N 10int x[N]; int x[N];C)int x[0..10]; D)int x[];(28)若要定义一个具有5个元素的整型数组,以下错误的定义语句是A)int a[5]=﹛0﹜;B)int b[]={0,0,0,0,0}; C)int c[2+3];D)int i=5,d[i];(29)有以下程序#include<stdio.h>void f(int *p);main(){int a[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,4B)4,4C)3,1D)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,1B)1,6,3,4,5,2,7 C)7,6,5,4,3,2,1D)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>void fun(char*p){int i=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)ab cd EFG!B)Ab Cd EFg!C)aB cD EFG!D)ab cd EFg!(35)有以下程序#include<stdio.h>void fun(int x){if(x/2>1)fun(x/2);printf(”%d”,x);}main(){fun(7);printf(”\n”);}程序运行后的输出结果是A)1 3 7B)7 3 1C)7 3D)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)11B)21C)6D)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,3 B)2,2,3 C)1,2,3 D)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,4 B)4,4 C)4,8 D)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)&0248 D)<<I二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。

2010年9月全国计算机等级考试二级C真题

2010年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共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)数据库设计中反映用户对数据要求的模式是______。

全国计算机等级考试二级C语言考试大纲(附2010年9月真题与答案)

全国计算机等级考试二级C语言考试大纲(新)◆ 基本要求1.熟悉 Visual C++ 6.0 集成开发环境。

2.掌握结构化程序设计的方法,具有良好的程序设计风格。

3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。

4.在 Visual C++ 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力5.掌握算法的基本概念。

6.掌握基本数据结构及其操作。

7.掌握基本排序和查找算法。

8.掌握逐步求精的结构化程序设计方法。

9.掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。

10.掌握数据的基本知识,了解关系数据库的设计。

◆ 考试内容一、C语言程序的结构1.程序的构成,main函数和其他函数。

2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。

3.源程序的书写格式。

4.C语言的风格。

二、数据类型及其运算1.C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。

2.C运算符的种类、运算优先级和结合性。

3.不同类型数据间的转换与运算。

4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。

三、基本语句1.表达式语句,空语句,复合语句。

2.输入输出函数的调用,正确输入数据并正确设计输出格式。

四、选择结构程序设计1.用if语句实现选择结构。

2.用switch语句实现多分支选择结构。

3.选择结构的嵌套。

五、循环结构程序设计1.for循环结构。

2.while和do-while循环结构。

3.continue语句和break语句。

4.循环的嵌套六、数组的定义和引用1.一维数组和二维数组的定义、初始化和数组元素的引用。

2.字符串与字符数组。

七、函数1.库函数的正确调用。

2.函数的定义方法。

3.函数的类型和返回值。

4.形式参数与实在参数,参数值传递。

5.函数的正确调用,嵌套调用,递归调用。

6.局部变量和全局变量。

7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。

全国计算机二级C语言笔试真题及答案2010年3月和九月(word版)

2010年3月二级c语言笔试真题及答案试题:一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分。

共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。

(1) 下列叙述中正确的是AA)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D) 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2) 算法的时间复杂度是指DA)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3) 软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于系统软件的是BA)编辑软件B)操作系统C)教务管理系统D)浏览器(4) 软件(程序)调试的任务是AA)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5) 数据流程图(DFD图)是CA)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6) 软件生命周期可分为定义阶段,开发阶段和维护阶段。

详细设计属于BA)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7) 数据库管理系统中负责数据模式定义的语言是AA)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8) 在学生管理的关系数据库中,存取一个学生信息的数据单位是DA)文件B)数据库C)字段D)记录(9) 数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的BA)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10) 有两个关系R和T如下:R TA B Ca 1 2b 2 2c 3 2A B Cc 3 2d 3 2则由关系R得到关系T的操作是A选择B)投影C)交D)并(11) 以下叙述正确的是BA)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可以作为单独文件形式存在(12) 以下关于C语言的叙述中正确的是BA)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以再使用之前的任何位置进行定义C)在C语言算术的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13) 以下C语言用户标示符中,不合法的是DA)_1 B)AaBc C)a_b D)a--b(14) 若有定义:double a=22;int i=0,k=18;则不符合C语言规定的赋值语句是CA)a=a++,i++ B)i=(a+k)<=(i+k) C)i=a%11 D)i=!a(15)#include <stdio.h>Void main(){char a,b,c,d;scanf(”%c%c”,&a,&b);c=getchar(); d=getchar();printf(”%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第一列开始,<CR>代表回车,注意:回车是一个字符)12<CR>34<CR>则输出结果是:CA、1234B、12C、12D、123 3416、以下关于C语言数据类型使用的叙述中错误的是:DA、若要准确无误的表示自然数,应使用整数类型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档