2011 9月二级C语言试题及答案

合集下载

2011年9月全国计算机等级考试二级C语言试卷及答案

2011年9月全国计算机等级考试二级C语言试卷及答案

2011年9月全国计算机等级考试二级笔试试卷(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)1.下列叙述中正确的是。

A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对2.下列关于线性链表的叙述中,正确的是A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素D.以上三种说法都不对3.下列关于二叉树的叙述中,正确的是A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是A.学生成绩管理系统B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统5.某系统总体结构图如下图所示:该系统总体结构图的深度是A.7B.6C.3D.26.程序调试的任务是A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误7.下列关于数据库设计的叙述中,正确的是A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典8.数据库系统的三级模式不包括A.概念模式B.内模式C.外模式D.数据模式9.有三个关系 R、S 和 T 如下:则由关系 R 和 S 得到关系 T 的操作是A.自然连接B.差C.交D.并10.下列选项中属于面向对象设计方法主要特征的是A.继承B.自顶向下C.模块化D.逐步求精11.以下叙述中错误的是A.C 语言编写的函数源程序,其文件名后缀可以是 CB.C 语言编写的函数都可以作为一个独立的源程序文件C.C 语言编写的每个函数都可以进行独立的编译并执行D.一个 C 语言程序只能有一个主函数12.以下选项中关于程序模块化得叙述错误的是A.把程序分成若干相对独立的模块可便于编码和调试B.把程序分成若干相对独立,功能单一的模块,可便于重复使用这些模块C.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序13.以下选项中关于 C 语言常量的叙述错误的是:A.所谓常量,是指在程序运行过程中,其值不能被改变的量B.常量分为整型常量、实型常量、字符常量和字符串常量C.常量可分为数值型常量和非数值型常量D.经常被使用的变量可定义成常量14.若有定义语句:int a=10;double b=3.14;,则表达式‘A’+a+b 值得类型是A.charB.intC.doubleD.float15.如有定义语句:int x=12,y=8,z;,在其后执行语句 z=0.9+x/y,则 z 的值为A.1.9B.1C.2D.2.416.若有定义:int a,b;,通过语句scanf(‚%d;%d‛,&a,&b);,能把整数 3 赋给变量 a,5 付给变量 b 的输入数据是A.3 5B.3,5C.3;5D.3517.若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1 和 k2 的值分别为A. 0 和 1B.0 和 20C.10 和 1D. 10 和 2018.有以下程序#include <stdio.h>Main(){ int a=1,b=0;If(--a) b++;Else if(a==0) b+=2;Elseb+=3;Printf(‚%d\n‛,b);}程序运行后的输出结果是A.0B.1C.2D.319.下列条件语句中输出结果与其他语句不同的是A.if(a)printf(‚%d\n‛,x); else printf(‚%d\n‛,y);B.if(a==0)printf(‚%d\n‛,y); else printf(‚%d\n‛,x);C.if(a!=0)printf(‚%d\n‛,x); else printf(‚%d\n‛,y);D.if(a==0)printf(‚%d\n‛,x); else printf(‚%d\n‛,y);20.有以下程序:#include <stdio.h>Main(){ int a=7;While(a--);Printf(‚%d\n‛,a);}程序运行后的输出结果是A.-1B.0C.1D.721.以下不能输出字符 A 的语句是(注:字符 A 的 ASCII 码值为 65,字符 a 的 ASCII 码值为97)A.printf(‚%c\n‛,’A’-32);B.printf(‚%d\n‛,’A’);C.printf(‚%c\n‛,65);D.printf(‚%c\n‛,’B’-1);22.有以下程序(注:字符 a 的 ASCII 码值为 97)#include <stdio.h>Main(){ char *s={‚abc‛}; Do{printf(‚%d‛,*s%10);++s;}While(*s);}程序运行后的输出结果是A.abcB.789C.7890D.97989823.若有定义语句:double a,*p&a;以下叙述中错误的是A.定义语句中的*号是一个地址运算符B.定义语句中的*号只是一个说明符C.定义语句中的 p 只能存放 double 类型变量的地址D.定义语句中,*p=&a 把变量 a 的地址作为初值赋给指针变量 p24.有以下程序:#include <stdio.h>Double f(double x);Main(){ double a=0; int I; For(i=0;i<30;i+=10)a+=f((double)i); Printf(‚%5.0f\n‛,a);}Double f(double x){return x*x+1;}程序运行后的输出结果是A.503B.401C.500D.140425.若定义语句:int year=2009,*p=&year;,以下不能使变量 year 中的值增至 2010 的语句是A.*p+=1;B.(*p)++;C.++(*p);D.*p++;26.以下定义数组的语句中错误的是A.int num[]={1,2,3,4,5,6};B.int num[][3]={{1,2},3,4,5,6};C.int num[2][4]={{1,2},{3,4},{5,6}};D.int num[][4]={1,2,3,4,5,6};27.有以下程序#include <stdio.h>Void fun(int *p){printf(‚%d\n‛,p[5]);}Main(){int a[10]={1,2,3,4,5,6,7,8,9,10};Fun(&a[3]);}程序运行后的输出结果是A.5B.6C.8D.928. 有以下程序#include<stdio.h>#define N 4Void fun(int a[][N],int b[]) { inti;for(i=0;i<N;i++) b[j]=a[i]][j]-a[i][N,1-i];}Main(){ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;Fun(x,y);for(i=0;i<N;i++) printf(‚%d‛,y[i]); printf(‚\n‛);程序运行后的输出结果是A.-12,-3,0,0,B.-3,-1,1,3,C.,0,1,2,3,D.-3,-3,-3,-3,29.有以下函数int fun(char *x,char *y){ int n=0;While((*x=*y)&&*x!=’\0’){x++;y++;n++;}Return n;}函数的功能是A.查找 x 和 y 所指字符串中是否有‘\0‘B.统计 x 和 y 所指字符串中最前面连续相同的字符个数C.将 y 所指字符串赋给 x 所值存储空间D.统计 x 和 y 所指字符串中相同的字符个数30.若有定义语句:char *s1=‛OK‛;*s2=‛ok‛;,以下选项中,能够输出‚OK‛的语句是A.if(stremp(s1,s2)==0) puts(s1);B.if(stremp(s1,s2)!=0) puts(s2);C.if(stremp(s1,s2)==1) puts(s1);D.if(stremp(s1,s2)!=0) puts(s1);31.以下程序的主函数中调用了在其前面定义的 fun 函数#include<stdio.h>Main(){double a[15],k; K=fun(a);}则以下选项中错误的fun函数首部是A.double fun(double a[15])B.double fun(double *a)C.double fun(double a[])D.double fun(double a)32.有以下程序:#include<stdio.h>#include<string.h>Main(){ char a[5][10]={‚china‛,‛beijing‛,‛you‛,‛tiananmen‛,‛welcome‛}; Int I,j;char t[10];For(i=0;i<4;i++)For(j=i+1;j<5;j++)If(stremp(a[i],a[j])>0){ strepy(t,a[i]); strepy(a[i],a[j]); strepy(a[i],t);} Puts(a[3]);}程序运行后的输出结果是A.beijingB.chinaC.welcomeD.tiananmen33.有以下程序:#include<stdio.h> Int f(intm){ static int n=0; N+=m;Return n;}Main(){ int n=0; Printf(‚%d,‛,f(++n));Printf(‚%d\n‛,f(n++));程序运行后的输出结果是____________A. 1,2B. 1,1C. 2,3D. 3,334.有以下程序#include<stdio.h>Main(){ char ch[3][5]={‚AAAA‛,‛BBB‛,‛CC‛} Printf(‚%s\n‛,ch[1]);}程序运行后的输出的结果是A.AAAAC.BBBCCD.BBB35.有以下程序#include<stdio.h>#include<string.h> Void fun(char *u,int n){ char x,*y1,*y2; Y1=u;y2=u+n-1;While(y1<y2) {s=*y1;*y1=*y2;*y2=s;p1++;p2--;}}Main(){ char a[]=‛1,2,3,4,5,6‛;Fun(a,strem(a));puts(a);}程序运行后的输出结果是A.654321B.115611C.153525D.12345636.有以下程序#include<stdio.h>#include<string.h>typedef struct{char name[];char sex;int score[2]}STU; STU f(STU i) {STU i={‚Zhao‛,‛m‛,85,90}; Int I;Strcpy(a name,b name); A sex=b sex;For(i=0;i<2;i++) a score[i]=b score[i]; Return a;}Main()STU c={‚Qian‛,‛f‛,95,92},d; D=f(c);Printf(‚%s,%c,%d,%d,‛,,d.sex,d.score[0],d.score[1]);Printf(‚%s,%c,%d,%d\n‛,,c.sex,c.score[0],c.score[1]);}程序运行后的输出结果是A.zhao,m,85,90,Qian,f,95,92B.zhao,m,85,90,zhao,m,85,90C.Qian,f,95,92,Qian,f,95,92D.Qian,f,95,92,zhao,m,85,9037.在以下程序#include<stdio.h>Main(){struct node{int n; struct node *next;}*p; Struct nodex[3]={{2,x+1},{4,x+2},{6,NULL}}; P=x;Printf(‚%d,‛,p>a);Printf(‚%d\n‛,p>next>a);程序运行后的输出结果是A.2,3B.2,4C.3,4D.4,638.有以下程序#include<stdio.h>Main(){ int a=2,b;B=a<<2; printf(‚%d\n‛,b);}程序运行后的输出结果是A.2B.4C.6D.839.以下选项中叙述错误的是A.C程序函数中定义的赋有初始值的静态变量,每调用一次函数,赋一次初值B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内C.C程序函数中定义的自动变量,系统不能自动赋确定的初值D.C程序函数的形参不可以说明为 static 型变量40.有以下程序#include<stdio.h>Main() {FILE *fp;Int k,n,I,a[6]={1,2,3,4,5,6};Fp=fopen(‚d2.dat‛,‛w‛);For(i=0;i<6;i++) fprintf(fp,‛%d\n‛,a[i]);Fclose(fp);Fp=fopen(‚d2.dat‛,‛r‛);For(i=0;i<3;i++) fscanf(fp,‛%d%d‛,&k,&n);Fclose(fp);Printf(‚%d,%d\n‛,k,n);}程序运行后的输出结果是A.1,2B.3,4C.5,6D.123,456二、填空题(每空2分,共30分)1.数据结构分为线性结构与非线性结构,带链的栈属于【1】2.在长度为 n 的顺序存储的线性表中插入一个元素,最坏情况下需要移动表中【2】3.常见的软件开发方法有结构化方法和面向对象方法,对某应用系统经过需求分析建立数据流图(DFD),则应采用【3】方法。

2011年9月计算机二级C笔试试题及答案word版(详细解析)

2011年9月计算机二级C笔试试题及答案word版(详细解析)

201 1年9月全国计算机等级考试二级笔试试卷(1)下列叙述中正确的是( )。

A)算法就是程序B)设计算法时只需要考虑数据结构的设计C)设计算法时只需要考虑结果的可靠性D)以上三种说法都不对(2)下列关于线性链表的叙述中,正确的是( )。

A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C)进行插入与删除时,不需要移动表中的元素D)以上三种说法都不对(3)下列关于二叉树的叙述中,正确的是( )。

A)叶子结点总是比度为2的结点少一个 B)叶子结点总是比度为2的结点多一个c)叶子结点数是度为2的结点数的两倍 D)度为2的结点数是度为1的结点数的两倍(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( )。

A)学生成绩管理系统 B)C语言编译程序C)UNIX操作系统 D)数据库管理系统(5)某系统总体结构图如下图所示:该系统总体结构图的深度是( )。

A)7 B)6 C)3 D)2(6)程序调试的任务是( )。

A)设计测试用例 B)验证程序的正确性 C)发现程序中的错误 D)诊断和改正程序中的错误(7)下列关于数据库设计的叙述中,正确的是( )。

A)在需求分析阶段建立数据字典 B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典 D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括( )。

A)概念模式 B)内模式C)外模式 D)数据模式(9)有三个关系R、S利T如下:则由关系R和s得到关系T的操作是( )。

A)自然连接 B)差 C)交 D)并(10)下列选项中属于面向对象设计方法主要特征的是( )。

A)继承 B)自顶向下 C)模块化 D)逐步求精(11)以下叙述中错误的是( )。

A)C语言编写的函数源程序,其文件名后缀可以是.CB)C语言编写的函数都可以作为一个独立的源程序文件C)C语言编写的每个函数都可以进行独立的编译并执行D)一个C语言程序只能有一个主函数(12)以下选项中关于程序模块化的叙述错误的是( )。

2011年9月计算机等级考试二级C语言笔试答案

2011年9月计算机等级考试二级C语言笔试答案

2011年 2011年9月计算机等级考试二级 VB 笔试答案 ) (网友提供,非官方答案,仅供参考! 网友提供,非官方答案,仅供参考! 选择 【1—5】45215 【6—10】32421 【11—15】25241 【16—20】24132

【21—25】23113 【26—30】23132 【31—35】32115 填空 【1】线性结构 【2】n 【3】结构化 【4】 【5】Autosize 【6】 【7】Result*x 【8】m 【9】t 【10】m<40 【11】4 【12】70 【13】#1 【14】"end " 【15】ct,nt
Access:选择: Access:选择: 选择 1-10:4421343421 11-20:4413424121 21-30:4231311442 31-35:23234 填空: 填空: 1、线性结构 2、N 3、结构化 4、dbms 5、关系 6、1 7、 8、页 9、This.Caption="Access 窗体" 10、m<=100 11、-1*f 12、Second+1
2011年 2011年9月计算机等级考试二级 C 语言笔试答案 ) (网友提供,非官方答案,仅供参考! 网友提供,非官方答案,仅供参考! 参考答案1 参考答案1 C 语言 44213 43421 34132 32344 22211 34221 44241 22413 1、线性结构2、n 3、结构化 4、DBMS 5、关系 6、自己做 7、1 8、34 9、14 10、AEJ 11、2 12、213 13、2 14、i+1 15、1 参考答案2 参考答案2 1-10BBBACDADCA11-15CDDCD 16-20CACDA 【21-25】22114 【26—30】34245 【31—35】42141 【36—40】15413 填空 【1】线性结构 【2】n 【3】 【4】数据库系统 【5】 【6】print('****a=%d,b=%d****') 【7】1 【8】34 【9】14 【10】AFK 【11】211 【12】213 【13】3 【14】i+1 【15】1

全国计算机等级考试二级VISUAL+FOXPRO真题2011年9月

全国计算机等级考试二级VISUAL+FOXPRO真题2011年9月

全国计算机等级考试二级VISUAL FOXPRO真题2011年9月(总分:102.00,做题时间:90分钟)一、选择题 (总题数:32,分数:72.00)1.下列叙述中正确的是( )。

(分数:2.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对√解析:【解析】所谓算法是指解题方案的准确而完整的描述。

是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。

算法不等于程序,也不等于计算方法。

设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。

2.下列关于线性链表的叙述中,正确的是( )。

(分数:2.00)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素√D.以上三种说法都不对解析:【解析】线性表的链式存储结构称为线性链表。

在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。

3.下列关于二叉树的叙述中,正确的是( )。

(分数:2.00)A.叶子结点总是比度为2的结点少一个B.叶子结点总是比度为2的结点多一个√C.叶子结点数是度为2的结点数的两倍D.度为2的结点数是度为1的结点数的两倍解析:【解析】由二叉树的性质可以知道在二叉树中叶子结点总是比度为2的结点多一个。

4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( )。

(分数:2.00)A.学生成绩管理系统√B.C语言编译程序C.UNIX操作系统D.数据库管理系统解析:【解析】学生成绩管理系统为应用软件。

5.某系统总体结构图如下图所示:( )。

(分数:2.00)A.7B.6C.3 √D.2解析:【解析】这个系统总体结构图是一棵树结构,在树结构中,根结点在第1层,同一层上所有子结点都在下一层,由系统总体结构图可知,这棵树共3层。

2011年计算机二级C语言编写程序题及答案解析精选

2011年计算机二级C语言编写程序题及答案解析精选

2011年计算机二级C语言编写程序题及答案解析精选【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315%期限一年0.330%期限二年月息利率=0.345%期限三年0.375%期限五年0.420%期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

【4.2】输入年份year和月month,求该月有多少天。

判断是否为闰年,可用如下C语言表达式:year%4==0&&year0!=0||year@0==0。

若表达式成立(即表达式值为1),则year 为闰年;否则,表达式不成立(即值为0),year为平年。

【4.3】编写一个简单计算器程序,输入格式为:data1op data2。

其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。

【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】输入n值,输出如图所示高为n的等腰三角形。

【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。

【4.10】输入n值,输出如图所示边长为n的空心正六边型。

【4.11】输入n值,输出如图所示图形。

【4.12】输入n值,输出如图所示图形。

【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。

【4.15】输入n值,输出如图所示图形。

【4.16】输入n值,输出如图所示图形。

(例为n=6时)【4.17】编写程序,输出如图所示sin(x)函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。

若屏幕的横向为x轴,纵向为y 轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。

最新2011年9月全国计算机等级考试二级C语言 (全)

最新2011年9月全国计算机等级考试二级C语言 (全)

第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。

函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。

/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。

函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。

/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n 返回这些数的个数。

2011年9月c语言二级试题及答案

2011年9月c语言二级试题及答案

2011年9月c语言二级试题及答案一、单项选择题(本大题共40小题,每小题1分,共40分。

在每小题的四个选项中,只有一个选项是正确的,请将正确选项的标号填入题干后的括号内。

)1. 在C语言中,下列哪个选项是合法的整型常量?A. 0x12LB. 0x12.3C. 0x12.0LD. 0x12.0答案:A2. 下列哪个关键字是用于定义函数的?A. intB. charC. voidD. return答案:A3. 在C语言中,哪个运算符用于计算两个整数的差值?A. %B. /C. -D. +答案:C4. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. variable$2答案:B5. 在C语言中,下列哪个选项表示逻辑“与”运算?A. &&B. ||C. !D. ==答案:A6. 下列哪个选项是C语言中的合法字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"D. "Hello, World!"答案:A7. 在C语言中,下列哪个选项表示字符常量?A. 'a'B. "a"C. aD. 65答案:A8. 下列哪个选项是C语言中的合法浮点数常量?A. 3.14159B. .14159C. 314159.D. 3.14E答案:A9. 在C语言中,下列哪个选项表示数组?A. int a[10];B. int *a;C. int a;D. int (a[10]);答案:A10. 下列哪个选项是C语言中的合法注释?A. // This is a commentB. /* This is a comment */C. //* This is a commentD. /* This is a comment答案:A(注:后续题目按照上述格式继续编写,直到第40题)二、填空题(本大题共5小题,每小题2分,共10分。

2011年计算机等级二级C语言笔试题及答案

2011年计算机等级二级C语言笔试题及答案

2011年计算机等级二级C语言笔试题及答案(1)计算机等级考试网更新:2011-6-19 编辑:风清云淡一、填空题1、C语言中基本的数据类型有:__________、__________ 、__________ 。

2、C语言中普通整型变量的类型说明符为__________,在内存中占__________字节,有符号普通整型的数据范围是__________。

3、整数-35在机内的补码表示为__________。

4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是__________ 。

5、有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是__________,A[3]=__________ 。

6、符号”a”和’a’的区别是__________。

7、所谓“指针”就是__________ 。

“&”运算符的作用是__________。

“*”运算符的作用是__________ 。

8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是__________。

二、选择题1、设整型变量a为5,使b不为2的表达式是()。

A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。

A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是( )。

int x=10,y=10;printf(“%d %d\n”,x--,--y);A. 10 10B. 9 9C. 9 10D. 10 94、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为()。

2011年全国计算机二级C语言上机题题库及答案

2011年全国计算机二级C语言上机题题库及答案

{ b[j]=a[i]; j++; } b[j]=‘\0’; }
7: 第7题 请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最 大元素在数组中的下标并存放在k所指的储存单元中。 答案: void fun (int *s, int t, int *k) { int I, max; max=s[0]; for(i=0;i<t;i++) if (s[i]>max) { max=s[i]; *k=I; } }
6: 第6题 请编写一个函数void fun(char a[],char[],int n),其功能是:删 除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字 符串存放在b所指的数组中,n中存放指定的下标。 答案: void fun(char a[],char b[], int n) { int I,j=0; for (i=0;i<LEN;i++) if (i!=n)
17: 第17题 请编写一个函数fun(char *s),该函数的功能使把字符串中 的内容拟置。 答案: void fun(char *s) { char ch; int I,m,n; i=0; m=n=strlen(s)-1; while(i<(n+1)/2) { ch=s[i]; s[i]=s[m]; s[m]=ch; i++;
for(j=0;j<N;j++) { s+=w[N-1][j]; k++; } for(i=1;i<=N-2;i++) { s+=w[i][0]; k++; } for(i=1;i<=N-2;i++) { s+=w[ return s/=k; }

2011年9月全国计算机二级C++考试真题及答案

2011年9月全国计算机二级C++考试真题及答案

2011年9月全国计算机二级C++考试真题及答案(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是(D )。

A)算法就是程序B)设计算法时只需要考虑数据结构的设计C)设计算法时只需要考虑结果的可靠性D)以上三种说法都不对(2)下列关于线性链表的叙述中,正确的是(C )。

A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C)进行插入与删除时,不需要移动表中的元素D)以上三种说法都不对(3)下列关于二叉树的叙述中,正确的是(B )。

A)叶子结点总是比度为2的结点少一个B)叶子结点总是比度为2的结点多一个C)叶子结点数是度为2的结点数的两倍D)度为2的结点数是度为1的结点数的两倍(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( A )。

A)学生成绩管理系统 B)C语言编译程序C)UNIX操作系统 D)数据库管理系统(5)某系统总体结构图如下图所示:该系统总体结构图的深度是(C )。

A)7 B)6 C)3 D)2(6)程序调试的任务是(D )。

A)设计测试用例 B)验证程序的正确性C)发现程序中的错误 D)诊断和改正程序中的错误(7)下列关于数据库设计的叙述中,正确的是( A )。

A)在需求分析阶段建立数据字典 B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典 D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括(D )。

A)概念模式 B)内模式 C)外模式 D)数据模式(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是(B )。

A)自然连接 B)差 C)交 D)并(10)下列选项中属于面向对象设计方法主要特征的是( A )。

2011年 9月全国计算机等级考试二级笔试试卷与答案

2011年 9月全国计算机等级考试二级笔试试卷与答案

2011年9月全国计算机等级考试二级笔试试卷Visual Basic语言程序设计(考试时间90 分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是()。

A)算法就是程序B)设计算法时只需要考虑数据结构的设计C)设计算法时只需要考虑结果的可靠性D)以上三种说法都不对(2)下列关于线性链表的叙述中,正确的是A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C)进行插入与删除时,不需要移动表中的元素D)以上三种说法都不对(3)下列关于二叉树的叙述中,正确的是A)叶子结点总是比度为2的结点少一个B)叶子结点总是比度为2的结点多一个C)叶子结点数是度为2的结点数的两倍D)度为2的结点数是度为1的结点数的两倍(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是A)学生成绩管理系统B)C语言编译程序C)UNIX操作系统D)数据库管理系统(5)某系统总体结构图如下图所示:< xmlnamespace prefix ="v" ns ="urn:schemas-microsoft-com:vml" />该系统总体结构图的深度是A)7 B)< xmlnamespace prefix ="st1" ns="urn:schemas-microsoft-com:office:smarttags" />6 C)3 D)2(6)程序调试的任务是A)设计测试用例B)验证程序的正确性C)发现程序中的错误D)诊断和改正程序中的错误(7)下列关于数据库设计的叙述中,正确的是A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括A)概念模式B)内模式C)外模式D)数据模式(9)有三个关系R、S和T如下:R S T则由关系R和S得到关系T的操作是A)自然连接B)差C)交D)并(10)下列选项中属于面向对象设计方法主要特征的是A)继承B)自顶向下C)模块化D)逐步求精(11)以下描述中错误的是A)窗体的标题通过其Caption属性设置B)窗体的名称(Name属性)可以在运行期间修改C)窗体的背景图形通过其Picture属性设置D)窗体最小化时的图标通过其Icon属性设置(12)在设计阶段,当按Ctrl+R键时,所打开的窗口是A)代码窗口B)工具箱窗口C)工程资源管理器窗口D)属性窗口(13)设有如下变量声明语句:Dim a, b As Boolean则下面叙述中正确的是A)a和b都是布尔型变量B)a是变体型变量,b是布尔型变量C)a是整型变量,b是布尔型变量D)a和b都是变体型变量(14)下列可以作为Visual Basic变量名的是A)A#A B)4ABC C)?xy D)Print_Text(15)假定一个滚动条的LargeChange属性值为100,则100表示A)单击滚动条箭头和滚动框之间某位置时滚动框位置的变化量B)滚动框位置的最大值C)拖动滚动框时滚动框位置的变化量D)单击滚动条箭头时滚动框位置的变化量(16)在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()MsgBox Str(123 + 321)End Sub程序运行后,单击命令按钮,则在信息框中显示的提示信息为A)字符串“123+321”B)字符串“444”C)数值“444”D)空白(17)假定有以下程序:Private Sub Form_Click()Do Until a >= 5x = a * bPrint b; xa = a + bb = b + aLoopEnd Sub程序运行后,单击窗体,输出结果是A) 1 1 B) 1 1 C) 1 1 D) 1 12 3 2 4 3 8 3 6(18)在窗体上画一个名称为List1的列表框,列表框中显示若干城市的名称。

二级C试题

二级C试题

2011年9月计算机二级c等级考试复习试题一选择题1.下面标识符中正确的是( )。

A.a#bcB.123ABCC.simeD.Y·M·D2. 下列不正确的转义字符是( )A.\\B.\‟C.074D.\03.设a为5,执行下列语句后,b的值不为2的是( )A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:24.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( )A.1B.2C.2.0D.2.55.设有定义:char s[12]={“string”};则printf (“%d\n”,strlen(s));的输出是( )A.6B.7C.11D.126.合法的数组定义是( )A.int a[]={“string”};B.int a[5]={0,1,2,3,4,5};C.char a={“string”};D.char a[]={0,1,2,3,4,5}7.设有如下定义,则正确的叙述为( )char x[]={“abcdefg”};char y[]={…a‟,‟b‟,‟c‟,‟d‟,‟e‟,‟f‟,‟g‟};A.数组x和数组y等价B.数组x和数组y的长度相同C.数组x的长度大于数组y的长度D.数组x的长度小于数组y的长度8.设有单精度变量f,其值为13.8。

执行语句“n=((int)f)%3;”后,n的值是( )A.4B.1C.4.333333D.4.69.若有以下定义和语句,且0<=i<5,则( )是对数组元素地址的正确表示( )int a[]={1,2,3,4,5},*p,i;p=a;A.&(a+i)B.&pC.a++D.&p[i]10.下列表达式的结果正确的是( )。

int a,b,c,d;a=b=c=d=2;d=a+1==3?b=a+2:a+3A.2B.4C.3D.511.以下选项中,合法的一组C语言数值常量是( )A)028 B)12. C).177 D)0x8A . 5e-3 OXa23 4c1.5 10,000-0xf12.以下叙述中正确的是( )A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数13.若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;14.有以下程序段( )int j; float y; char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0C)7777.0 D)566777.015.若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是( )A)0,0 B)0,1C)1,1 D)程序进入无限循环16.设有条件表达式:(EXP) i++;j--,则以下表达式中(EXP)完全等价的是( ) A)(EXP= =0) B)(EXP!=0)C)(EXP= =1) D)(EXP!=1)17.有以下程序#include<stdio.h>main(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是( )A)0 B)1 C)2 D)318.有以下函数int aaa(char *s){char *t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能叙述正确的是( )A)求字符串s的长度 B)比较两个串的大小C)将串s复制到串t D)求字符串s所占字节数19.若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是( ) A)a[0][4] B) a[1][3]C)a[0][3] D)a[1][4]20.有以下程序#include<stdio.h>void fun(char **p){++p; printf("%s\n",*p);}main(){char *a[]={"Morning","Afternoon","Evening","Night"};fun(a);}程序的运行结果是( )A)Afternoon B)fternoon C)Morning D)orning21.若有定义语句:int a[2][3],*p[3]; ,则以下语句中正确的是( )A)p=a; B)p[0]=a; C) p[0]=&a[1][2]; D)p[1]=&a;22.当用户要求输入的字符串中含有空格时,应使用的输入函数是( )A)scanf() B)getchar() C)gets() D)getc()23.若程序中有宏定义行:#define N 100 则以下叙述中正确的是( )A)宏定义行中定义了标识符N的值为整数100B)在编译程序对C源程序进行预处理时用100替换标识符NC)对C源程序进行编译时用100替换标识符ND)在运行时用100替换标识符N24.以下关于typedef的叙述错误的是( )A)用typedef可以增加新类型B)typedef只是将已存在的类型用一个新的名字来代表C)用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名D)用typedef为类型说明一个新名,通常可以增加程序的可读性25.有以下程序#include<stdio.h>struct tt{int x;struct tt *y;} *p;struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};main(){ int i;p=a;for(i=1;i<=2;i++) {printf("%d,",p->x); p=p->y;}}程序的运行结果是( )A)20,30, B)30,17 C)15,30, D)20,15,26.设有以下定义union data{ int d1; float d2; }demo;则下面叙述中错误的是( )A)变量demo与成员d2所占的内存字节数相同B)变量demo中各成员的地址相同C)变量demo和各成员的地址相同D)若给demo.d1赋99后, demo.d2中的值是99.027.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是( )A)++x,y=x-- B)x+1=y C)x=x+10=x+y D)double(x)/1028.若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++): (y++)中的条件表达式(x-y)等价的是( )A)(x-y>0)B)(x-y<0) C)(x-y<║x-y>0) D)(x-y==0)29.有以下程序main(){int x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是( )A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,130.下列叙述中正确的是( )A)break语句只能用于switch语句B)在switch语句中必须使用defaultC)break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句31.有以下程序mian0{int k=5;while(-k) printf("%d",k-=3);printf("\n")}执行后的输出结果是( )A)1 B)2 C)4 D)死循环32.以下选项中,值为1的表达式( )A)1-"0" B)1-"\0" C)"1"-0 D)"\0"-"0"33.有以下程序main(){ char s[ ]= "abcde";s+=2;printf("%d\n",s[0]);}执行后的结果是( )A)输出字符a的ASCII码B)输出字符c的ASCII码C)输出字符c D)程序出错34.有以下程序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,11 C)11,11 D)11,535.在16位编译系统上,右有定义int a[ ]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是( )A)p向高地址移了一个字节B)p抽高地址移了一个存储单元C)p向高地址移了两个字节D)p与a+1等价36.有以下程序main(){int a=1,b=3,c=5;int *p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",c);}执行后的输出结果是( )A)1 B)2 C)3 D)437.若有定义:int w[3][5];,则以下不能正确表示该数组元素的表达式是( )A)*(*w+3)B)*(w+1)[4] C)*(*(w+1)) D)*(&w[0][0]+1)38.若有以下函数首部int fun(double x[10],int *n)则下面针对此函数声母语句中正确的是( )A)int fun(double x,int *n); B)int fun(double ,int);C)int fun(double*x,int n); D)int fun(double *,int*);39.若有定义语句:int k[2][3],*pk[3];,则以下语句中正确的是( )A)pk=k; B)pk[0]=&k[1][2]; C)pk=k[0]; D)pk[1]=k;40.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是( )A)#define N 10 Int a[N] B)#define n 5 Int a[2*n]C)int a[5+5] D)int n=10,a[n]41.有以下程序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 0 B)2 0 4 C)2 4 0 D)2 4 642.有以下程序main(){char s[ ]={ "aeiou"},*ps;ps=s; printf("%c\n",*ps+4);}程序运行后的输出结果是( )A)a B)e C)u D)元素s[4]的地址43.以下语句中存在语法错误的是( )A)char ss[6][20];ss[1]= "right? ";B)char ss[][20]={ "right? "};C)char *ss[6];ss[1]= "right? ";D)char *ss[]={"right? "};44.有以下程序#include <stdio.h>#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 12 B)11 7 C)11 11 D)12 745.设有以下语句typedef struct TT{char c; int a[4];}CIN;则下面叙述中正确的是( )A)可以用TT定义结构体变量B)TT是struct类型的变量C)可以用CIN定义结构体变量D)CIN是struct TT类型的变量二填空题1. 写出下面表达式的值3*5/7+7%3 ___3_____ x=2 ; y=4; (x++)+y ___6_____3+4>=7-10____1_____ 3>4 ? 3%2: 1 ____1___x=2,y=2;++x&&++y_____1___ x=3 ; x+=x-=2 ___2_____2.下面是实现打印九九乘法表的程序,请在画线的位置填上适当的语句,使程序(段)完整。

2011年9月计算机二级C语言笔试题库50套,答案解析详细

2011年9月计算机二级C语言笔试题库50套,答案解析详细

2011年3月份全国计算机等级考试二级C语言笔试题库50套一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 BA)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是BDA)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求 BA)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定 DA)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指DAA)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是CDA)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是CBA)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成 BA)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为 DA)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是 DA)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是BCA)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是CBA)void, define, WORDB)a3_3,_123,CarC)For, -abc, IF CaseD)2a, DO, sizeof(13)以下选项中可作为C语言合法常量的是 AA)-80B)-080C)-8e1.0D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是 AA) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是DBA)int a=b=0;B)char A=65+1,b=′b′;C)float a=1,*b=&a,*c=&b;D)double a=0 0;b=1.1;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是CDA)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序 Dmain(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是A)409B)277C)1D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是 AA)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段 Aint a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3C)3,5,5D)3,5,7(20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是 BA)a=1,b=0B)a=2,b=2C)a=1,b=1D)a=2,b=1(21)下列程序的输出结果是 B#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4B)a=4,b=5C)a=5,b=4D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是 CA)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是 Amain(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3B)4C)1D)2(24)以下错误的定义语句是 CA)int x[][3]={{0},{1},{1,2,3}};B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};D)int x[][3]={1,2,3,4};(25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是 BA)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd(26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是 AA)69825B)63825C)6385D)693825(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是 BA)gets(&s[0]);B)scanf("%s",s+1);C)gets(s);D)scanf("%s",s[1]);(28)以下叙述中错误的是 BA)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是 BA)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名(30)以下叙述中错误的是 DA)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是 DA)int a[5]={0,1,2,3,4,5};B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′};C)char a={′A′,′B′,′C′};D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是 AA) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include <stdio.h>#include <string.h>void fun(char *s[],int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;} }main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是 DA)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){ int y;if(x==0||x==1) return(3);y=x *x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0B)9C)6D)8(35)下面程序段的运行结果是 Cchar str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67B)0C)字符′C′的地址D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构: 指针p指向变量a,q指向变量c。

2011年9月c语言二级试题及答案

2011年9月c语言二级试题及答案

2011年9月c语言二级试题及答案一、选择题(每题2分,共40分)1. 在C语言中,下列哪个关键字用于定义一个函数?A. intB. returnC. voidD. function答案:A2. 下列哪个选项不是C语言中的基本数据类型?A. intB. floatC. stringD. char答案:C3. 以下哪个是正确的C语言变量名?A. 2variableB. variable2C. variable_2D. variable!答案:B4. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /5. 下列哪个语句用于结束一个C语言程序?A. break;B. continue;C. return;D. exit;答案:C6. 在C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A7. 下列哪个选项是正确的C语言数组声明?A. int array[10];B. int array(10);C. int array[];D. int [10] array;答案:A8. 在C语言中,哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B9. 下列哪个选项是C语言中的逻辑运算符?B. ||C. ==D. =答案:A10. 在C语言中,哪个函数用于获取当前时间?A. time()B. date()C. now()D. current_time()答案:A11. 下列哪个选项是C语言中的循环结构?A. forB. whileC. do-whileD. All of the above答案:D12. 在C语言中,哪个关键字用于定义一个指针?A. *ptrB. ptr*C. ptrD. &ptr答案:A13. 下列哪个选项是C语言中的文件操作函数?A. printf()B. scanf()C. fopen()D. fclose()答案:C14. 在C语言中,哪个函数用于计算一个数的绝对值?A. fabs()B. abs()C. sqrt()D. pow()答案:B15. 下列哪个选项是C语言中的递归函数调用?A. function_name();B. function_name(&function_name);C. function_name(*function_name);D. function_name = function_name();答案:A16. 在C语言中,哪个关键字用于定义一个枚举类型?A. enumB. typedefC. unionD. struct答案:A17. 下列哪个选项是C语言中的条件运算符?A. ifB. elseC. switchD. ?答案:D18. 在C语言中,哪个函数用于将整数转换为字符串?A. itoa()B. sprintf()C. atoi()D. printf()答案:A19. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. All of the above答案:D20. 在C语言中,哪个关键字用于定义一个联合体?A. structB. unionC. enumD. typedef答案:B二、填空题(每题2分,共20分)1. 在C语言中,定义一个字符型变量可以使用关键字________。

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

实验一
实验目的:掌握使用if-else语句和switch-case语句实现分支结构的方法。

实验内容:
1.运输公司对用户计算运费。

距离越远,每公里运费越低,标准如下:
s<250km 无折扣
250<=s<500 2%折扣
500<=s<1000 5%折扣
1000<=s<2000 8%折扣
2000<=s<3000 10%折扣
3000<=s 15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费计算公式为:f=p*w*s*(1-d),
编写程序计算运费。

要求:(1)使用switch~case语句。

(2)p、w、s的值从键盘输入。

#include<stdio.h>
main()
{int c,s;
float p,f,w,d;
scanf("%f,%f,%d",&p,&w,&s);
if(s>=3000) c=12;
else c=s/250;
switch(c)
{ case 0:d=0;break;
case 1:d=2;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6:
case 7:d=8;break;
case 8:
case 9:
case 10:
case 11:d=10;break;
case 12:d=15;break;
} f=p*w*s*(1-d/100.0);
printf("f=%f\n",f);}
实验二
实验目的:掌握使用三种循环语句实现循环结构的方法。

实验内容:
1.编写程序验证下列结论:任何一个自然数n的立方都等于n个连续奇数之和。

例如:13=1;23=3+5;33=7+9+11。

要求:程序对每个输入的自然数计算并输出相应的连续奇数,直到输入的自然数为0时止。

#include<stdio.h>
#include<math.h>
void main()
{
int n,N2,N3;
int m,i,a=0,b=0,s=0;
int o;
scanf("%d",&n);
if(n%2==1)
{
N2=n*n;
N3=n*n*n;
printf("%d*%d*%d=%d=",n,n,n,N3);
m=(n-1)/2;
for (i=-m;i<=m;i++)
{
a=N2+i*2;
s=s+a;
b=b+1;
printf("%d",a);
if (b!=n)
{
printf("+");
}
}
printf("\n");
if (s==N3)
printf("Yes\n");
else
printf("No\n");
}
else
{
N2=n*n;
N3=n*n*n;
printf("%d*%d*%d=%d=",n,n,n,N3);
m=n/2;
for (i=-m;i<=m;i++)
{
o=i/fabs(i);
if(i!=0)
{
a=N2+i*2+o;
s=s+a;
b=b+1; printf("%d",a);
if (b!=n)
{
printf("+");
}
}
}
printf("\n");
if (s==N3) printf("Yes\n");
else
printf("No\n");
}
}
实验三
实验目的:掌握一维数组的定义、初始化,以及一维数组元素的下标法引用和指针法引用。

实验内容:
1.将数组a中的10个元素后移m位,移出的m位顺序存放在数组的前位。

要求:(1)数组元素值在程序中初始化。

(2)m的值从键盘输入。

(3)用下标法和指针法两种方法。

实验四
实验目的:掌握二维数组的定义、初始化,以及二维数组元素的下标法引用和指针法引用。

实验内容:
1.有5名学生,每名学生有语文、数学、物理和外语四门课
的考试成绩,编程统计各学生的总分和平均分,以及所有学生各科的总计分和平均分。

要求:(1)成绩在程序中初始化,结果以表格的形式输出。

(2)分别用下标法和指针法实现。

#include<stdio.h>
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0};
int i,m,temp;
printf("请输入后移动的位数:");
scanf("%d",&m);
for(i=0;i<=m;i++)
{
temp=a[i];
a[i]=a[10-m-i];
a[10-i-m]=temp;
}
printf("移动后的数组:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
return 0;
}
#include<stdio.h>
struct student
{float score[4];
float stotal;
float saverage;
}stu[5];
int main(void)
{struct student *p[5];
int i,j;
float total[4];
float average[4];
//system("cls");
printf("please input students' score:\n");
for(i=0;i<5;i++) p[i]=&stu[i];
for(i=0;i<5;i++) {printf("student %d :\n",i+1);
for(j=0;j<4;j++) scanf("%f",&p[i]->score[j]); printf("\n");}
for(i=0;i<4;i++)
total[i]=p[0]->score[i]+p[1]->score[i]+p[2]->score[i]+p[3]->score[i]+p[4]->score[i ];
for(i=0;i<4;i++) average[i]=total[i]/5;
for(i=0;i<5;i++)
p[i]->stotal=p[i]->score[0]+p[i]->score[1]+p[i]->score[2]+p[i]->score[3];
for(i=0;i<5;i++) p[i]->saverage=p[i]->stotal/4;
printf(" yuwen shuxue wuli huaxue zongfen pingjunfen\n");
for(i=0;i<5;i++)
printf("student %d:%-3.2f %-3.2f %-3.2f %-3.2f %-3.2f %-3 .2f\n",i+1,p[i]->score[0],p[i]->score[1],p[i]->score[2],p[i]->score[3],p[i]->stotal,p[i ]->saverage);
printf(" yuwen shuxue wuli huaxue\n");
printf("
total: %.2f %.2f %.2f %.2f\n",total[0],total[1],total[2],total[3]);
printf("average:%-3.2f %-3.2f %-3.2f %-3.2f\n",average[0],average [1],average[2],average[3]);
//getch();
//clrscr();
return(0);
}
实验五
实验目的:掌握使用下标法和指针法处理字符串。

实验内容:
1.编写程序,统计字符串str中含有子串substr的个数。

要求:(1)字符串从键盘输入。

(2)分别用下标法和指针法实现。

相关文档
最新文档