2011年春江苏省计算机二级考试c语言上机试题
二级C语言真题2011年09月.

2011年9月全国计算机等级考试二级笔试试卷C语言程序设计一、选择题下列各题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)某系统总体结构图如下图所示:该系统总体结构图的深度是( )。
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)以下叙述中错误的是( )。
2011计算机等考二级C语言课后练习题及答案

2011计算机等级二级C语言课后练习题及答案(1)一、单项选择题1.C语言程序的执行,总是起始于【】。
A) 程序中的第一条可执行语句B) 程序中的第一个函数C) main函数D) 包含文件中的第一个函数分析:在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main函数开始,并且在main函数中结束。
本题正确答案为C。
2.下列说法中正确的是【】。
A) C程序书写时,不区分大小写字母B) C程序书写时,一行只能写一个语句C) C程序书写时,一个语句可分成几行书写D) C程序书写时每行必须有行号分析:C语言严格区分大小写字母,如"A1"和"a1"被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。
本题正确答案为C。
3.下面对C语言特点,不正确描述的是【】。
A) C语言兼有高级语言和低级语言的双重特点,执行效率高B) C语言既可以用来编写应用程序,又可以用来编写系统软件C) C语言的可移植性较差D) C语言是一种结构式模块化程序设计语言分析:C语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,所以C语言既可以编写应用程序,又可以开发系统软件,而且C程序可移植性好于汇编语言,程序清晰具有模块化的特点。
本题正确答案为C。
4.C语言源程序的最小单位是【】。
A) 程序行B) 语句C) 函数D) 字符分析:程序行、语句、函数都是由字符构成的,字符是C语言的最小单位。
本题正确答案为D。
5.以下四项中属于C语言关键字的是【】。
A) CHAR B) define C) unsigned D) return分析:C语言有32个关键字(或称保留字),它们都有特定的含意,并且由小写字母组成,所以选项A是错的,选项B不是保留字,选项D是return的错误拼写。
本题正确答案为C。
2011年计算机等级二级C语言课后练习题及答案解析(3)

一、单项选择题1.下面不属于C语言的数据类型是【】。
A) 整型B) 实型C) 逻辑型D) 双精度实型分析:和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。
本题正确答案为C。
2.C语言中,下列属于构造类型的是【】。
A) 整型B) 实型C) 指针类型D) 结构体类型分析:C语言中构造类型的数据有三种:数组、结构体和共用体,数组是同类型数据的集合,结构体是不同类型的数据集合。
本题正确答案为D。
3.下列字符串不符合标识符规定的是【】。
A) SUM B) sum C) 3cd D) end分析:标识符规定只能由26个英文字母(大小写均可),数字0~9和下划线组成,且不能以数字开头,题中的3cd不符合规定。
本题正确答案为C。
4.下面能正确表示八进制数的是【】。
A) 0x16 B) 029 C) -114 D) 033分析:选项A)以0x开头是十六进制数,选项B)虽然是0开头,但出现了数字9,选项C)是十进制数。
本题正确答案为D。
5.下面四个选项中,均是合法实数的选项是【】。
A) 2e-4.2 B)-0.50 C) 0.2e-.5 D)-e5分析:实数有两种表示形式:小数形式和指数形式,小数形式必须有小数点,指数形式中,字母e之前必须有数字,e之后必须是整数。
选项A)中的"2e-4.2",选项C)中的"0.2e-.5",选项D)中的"-e5"均是不合法的。
本题正确答案为B。
6.C语言中,字符型数据在内存中存储形式是【】。
A) 原码B) 反码C) 补码D) ASCII码分析:C语言中int型数据是以补码形式存放的,字符型数据是以ASCII码形式存放的。
本题正确答案为D。
7.下列正确的字符型常量是【】。
A) "a" B) ′\\\\′ C) "\\r" D) 277分析:字符常量的定义是用单引号括起来的一个字符,A和C的定界符不对,D超过了char型数据的表示范围,′\\\\′是转义字符。
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年9月全国计算机等级考试二级笔试试卷一、选择题A)算法就是程序B)设计算法时只需考虑数据结构的设计C)设计算法时只需考虑结果的可靠性D)以上三种说法都不对(2)下列关于线性链表叙述中,正确的是A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C)进入插入与删除时,不需要移动表中的元素D)以上三种说法都不对(3)下列关于二叉树的叙述中,正确的是A)叶子结点总是比度为2的结点少一个B)叶子结点总是比度为2的结点多一个C)叶子结点数是度为的结点数的两倍D)度为2的结点数是度为1的结点数的两倍(4)软件按功能分为应用软件、系统软件和支撑软件(或工具软件)。
下现属于应用软件的是A)统(5)该系统总体结构图的深度是A)7 B)6 C)3 D)2(6)程序调试的任务是A)设计测试用例B)验证程序的正确性C)发现程序中的错误D)诊断和改正程序中的错误(7)下列关于数据库设计的叙述中,正确是的A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括A)概念模式B)内模式C)外模式D)数据模式R S T(9)有三个关系R 、S 和T 如下:则由关系R 和S 得到关系T 的操作是 A)自然连接 B)差C)交 D)并(10)下列选项中属于面向对象设计方法主要特征的是A)继承 B)自顶向下 C)模块化 D)逐步求精(11)以下叙述中错误的是A)C 语言编写的函数源程序,其文件名后缀可以是.C B)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)char B)int C)double D)float (15)若有定义语句: int x=12, y=8, z; ,在其后执行语句z=0.9+x/y;,则z 的值为 A)1.9 B)1 C)2 D)2.4(16)若有定义: int a,b;,通过语scanf("%d;%d",&a,&b);,能把整数3赋给变量a, 5赋给变量b 的输入数据是A)3 5 B)3,5 C)3;5 D)35(17)若有定义语句: int k1=10, k2=20;,执行表达式(k1=k1>k2) && (k2=k2>k1)后,k1和k2的值分别为 A)0和1B)0和20C)10和1D)10和20(18)有以下程序#include <stdio.h> main( ){ int a=1, b=0;if (--a) b++;else if(a==0) b+=2;else b+=3;printf("%d\n",b);}程序运行后的输出结果是A)0 B)1 C)2 D)3(19)下列条件语句中,输出结果与其他语句不同的是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)-1 B)0 C)1 D)7(21)以下不能输出字符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)abc B)789 C)7890 D)979899(23)若有定义语句: double a,*p=&a; 以下叙述中错误的是A)定义语句中的 * 号是一个间址运算符B)定义语句中的 * 号只是一个说明符C)定义语句中的p只能存放double类型变量的地址D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p#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)503 B)401 C)500 D)1404(25)若有定义语句: 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)5 B)6 C)8 D)9(28)有以下程序#include <stdio.h># define N 4void fun(int a[][N], int b[]){ int i;for (i=0; i<N; i++) b[i]=a[i][i]-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,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 (strcm(s1,s2)==0 puts(s1); B)if (strcm(s1,s2)!=0 puts(s2);C)if (strcm(s1,s2)==1 puts(s1); D)if (strcm(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( strcmp(a[i], a[j])>0){ strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[j],t); }puts(a[3]);}程序运行后的输出结果是A)beijing B)china C)welcome D)tiananmen(33)有以下程序#include <stdio.h>int f(int m){ static int n=0;n+=m;return n;}main( ){ int n=0;printf("%d,", f(++n));printf("%d\n", f(n++));}程序运行后的输出结果是A)1,2 B)1,1 C)2,3 D)3,3(34)有以下程序#include <stdio.h>main( ){ char ch[3][5]={"AAAA","BBB","CC"};printf( "%s\n", ch[1] );}程序运行后的输出结果是A)AAAA B)CC C)BBBCC D)BBB(35)有以下程序#include <stdio.h>#include <string.h>void fun(char *w, int m){ char s,*p1, *p2;p1=w; p2=w+m-1;while (p1<p2) { s=*p1; *p1=*p2; *p2=s; p1++; p2--; }}main( ){ char a[]="123456";fun( a, strlen(a) ); puts(a);}程序运行后的输出结果是A)654321 B)116611 C)161616 D)123456(36)有以下程序#include <stdio.h>#include <string.h>typedef struct {char name[9]; char sex; int score[2]; } STU;STU f(STU a){ STU b={"Zhao",'m',85,90};int i;strcpy(, );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,92 B)Zhao,m,85,90,Zhao,m,85,90A)Qian,f,95,92,Qian,f,95,92 B)Qian,f,95,92,Zhao,m,85,90(37)有以下程序#include <stdio.h>main( ){ struct node {int n; struct node *next;} *p;struct node x[3]={{2,x+1}, {4,x+2}, {6, NULL}};p=x;printf("%d,", p->n );printf("%d\n",p->next->n );}程序运行后的输出结果是A)2,3 B)2,4 C)3,4 D)4,6(38)有以下程序#include <stdio.h>main( ){ int a=2, b;b=a<<2; printf("%d\n",b);}程序运行后的输出结果是A)2 B)4 C)6 D)8(39)以下选项中叙述错误的是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,2 B)3,4 C)5,6 D)123,456二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
1 2011年3月全国计算机等级考试二级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.2C)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=LiliC)Lili num= D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A)12 B)11 C)10 D)9(19)有以下程序#include <stdio.h>main(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case 1:printf("%d",s+5);case 2:printf("%d",s+4); break;case 3: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 <stdio.h>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);}程序运行后的输出结果是0 1 2 三个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 <stdio.h>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 <stdio.h>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 <stdio.h>main(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(27)有以下程序#include <stdio.h>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 <stdio.h>void fun(char *c){ while(*c){ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ char s[81];gets(s);puts(s);}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A)hello beijing B)Hello BeijingC)HELLO BEIJING D)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
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 个元素的地址为()。
全国计算机等级考试二级C语言真题2011年3月_真题-无答案
全国计算机等级考试二级C语言真题2011年3月(总分70,考试时间90分钟)一、选择题下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
1. 下列关于栈叙述正确的是______。
A. 栈顶元素最先能被删除B. 栈顶元素最后才能被删除C. 栈底元素永远不能被删除D. 以上三种说法都不对2. 下列叙述中正确的是______。
A. 有一个以上根结点的数据结构不一定是非线性结构B. 只有一个根结点的数据结构不一定是线性结构C. 循环链表是非线性结构D. 双向链表是非线性结构3. 某二叉树共有7个结点,其中叶子结点只有1个,则该二又树的深度为______。
(假设根结点在第1层)A. 3B. 4C. 6D. 74. 在软件开发中,需求分析阶段产生的主要文档是______。
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,下面可以作为类T实例化值的是______。
A. -369B. 369C. 0.369D. 整数集合1,2,3,4,511. 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是______。
2011计算机二级C语言上机(南开100题)
计算机二级C语言上机南开100题1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n 返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
计算机二级C语言上机真题【附详解】
函数fun的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。
例如:n=120时,函数值为239。
#include<conio.h>#include<stdio.h>int fun(int n){int_1__,s=0;/*能整除n的自然数即称为因子*/for(i=2;i<n;i++)if(n%i==0)s=___2__;return(s);}main()/*主函数*/{printf("%d\n",fun(120));}(2011年2月)解析:本题的考核点是计算n所有因子的算法。
解题思路:判断因子的方法是:能被n整除的数。
由于题意中指明需将1和n除外,所以循环的范围应从2至n-1。
答案:1:i2:s+i答案:【1】i【2】s+i【真题2】已知一个数列的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。
给定程序modi.c中函数fun的功能是:计算并输出该数列前n项的平方根之和sum。
n的值通过形参传入。
例如,当n=10时,程序的输出结果应为:23.197745。
请改正函数fun中的错误,使程序能输出正确的结果。
注意:不要改动main函数,#include<conio.h>#include<stdio.h>#include<math.h>/************found************/fun(int n){double sum,s0,s1,s2,s;int k;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;for(k=4;k<=n;k++){s=s0+s1+s2;sum+=sqrt(s);s0=s1;s1=s2;s2=s;}/************found************/return sum}main(){int n;clrscr();printf("Input N=");scanf("%d",&n);printf("%f\n",fun(n));}(2011年2月)解析:本题的考核点是C语言中的函数的入口参数和类型转换。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011年春江苏省计算机二级考试c语言上机试题2011年(春季)江苏省计算机二级考试C语言上机部分试卷上机试卷(01)一、改错题(16分)【程序功能】对存储在string数组内的英文句子中所有以a开始并以e结尾的单词做加密处理。
加密规则:若单词长度为偶数个字符,则将组成该单词的所有字母循环左移一次;否则循环右移一次。
例如,单词able经循环左移一次后变为blea;单词abide经循环右移一次后变为eabid。
【测试数据与运行结果】测试数据:she is able to abide her.屏幕输出:she is blea to eabid her.【含有错误的源程序】#include <stdio.h>#include <ctype.h>void wordchange(char str[]){ int i,j,k,m;char c;for(i=0;str[i];i++){for(j=i,k=i;isalpha(str[k]);k++);if(str[j]=='a' || &&str[k-1]=='e'){if((k-j)%2=0)=={c=str[j];for(m=k-1;m>j;m--)str[m]=str[m+1];str[k-1]=c;}else{c=str[k-1];for(m=k-1;m>j;m--)str[m]=sty[m-1];str[j]=c;}}i=k;} 。
}void main(){ char string[80]="she is able to abide her.";wordchange(string[80]);(string)puts(string);}【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。
3.改正后的源程序(文件名myf1.c)保存在T盘根目录中供阅卷使用,否则不予评分。
二、编程题(24分)【程序功能】矩阵数据生成及排序。
【编程要求】1.编写函数void cresort(int a[][3],int n)。
函数功能是先根据a指向的二维数组中第1列(列下标为0)和第2列(列下标为1)的值按下表所列规则生成第3列各元素的值,再以行为单位重排a数组的各行,使得所有行按第3列元素值从小到大排列。
第3列生成规则:对任意的i(0<=i<=n-1)有:2.编写main函数。
函数功能是声明5行3列二维数组a并用测试数据初始化,用数组a作为实参调用cresort函数,将a数组中的数据输出到屏幕及文件myf2.out中。
最后将考生本人的准考证号字符串输出到文件myf2.out 中。
【测试数据与运行结果】测试数据:27 16 011 12 06 9 07 13 08 5 0屏幕输出:27 16 16 9 18 5 211 12 37 13 4【要求】1.源程序文件名为myf2.C,输出结果文件名为myf2.out。
2.数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。
3.源程序文件和运行结果文件均需保存在T 盘根目录中供阅卷使用。
4.不要复制扩展名为obj和exe的文件到T 盘中。
2011年(春季)江苏省计算机二级考试C语言上机部分试卷上机试卷(02)一、改错题(16分)【程序功能】统计一个字符串中包含的字母串个数并找出其中最长的字母串。
所谓字母串是指一个连续的字母序列(不区分大小写),字母串之间用非字母字符分隔。
函数count的功能是统计p指向的字符串中包含的字母串个数,找出的最长字母串存放在pmax指向的数组中,函数返回字母串的个数。
【测试数据与运行结果】测试数据:you are teaeher234too.屏幕输出:a=you are teacher234too.number is 4max string is:teacher【含有错误的源程序】#include <stdio.h>#include <string.h>#include <ctype.h>int count(char p[],char pmax[]) { int j=0,k,m=0;char temp[100];while(*p){ while((!isalpha(*p)) &&*p) p++;k=0;if(*p!='\0') m++;while(isalpha(*p))temp[k++]=*p++;temp[k]="\0";if(k<j){ j=k;pmax=temp;strcpy(pmax,temp);}}return m;}void main(){ char a[100]="you are teacher234too.",max[100];int i;i=count(a[],max[]);(a,max)if(i==0)printf("a=%S: No letter strings!\n",a);elseprinff("a=%s\nnumberis %d\nmax string is:%s\n",a,i,max);}【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。
3.改正后的源程序(文件名myf1.c)保存在T:盘根目录中供阅卷使用,否则不予评分二、编程题(24分)【程序功能】将一个二维数组中的若干行数据按要求插入到另一个二维数组中。
【编程要求】1.定义符号常量N代表42.编写函数int insert_row(int a[][N],int n,int b[][N],int m)。
已知形参a指向的二维数组(简称a数组)前n行数据已按每行数据之和升序排列,形参b指向的二维数组中有m行数据。
insert_row函数实现将b数组中m行数据插入到a数组中,完成插入操作后a数组中所有行的数据仍按每行数据之和升序排列。
函数返回a数组中有效数据的行数。
3.编写main函数。
函数功能是声明两个二维数组x和y并用测试数据初始化,用x和y数组作为实参调用insert_row函数将y 数组中的两行数据插入到x数组中。
输出x数组中全部数据到屏幕及文件myf2.out中。
最后将考生本人的准考证号字符串输出到文myf2.out中。
【测试数据与运行结果】测试数据:x数组原数据:2 23 49 10 11 12y数组数据:1 3 5 75 10 15 20屏幕输出:2 23 41 3 5 79 10 11 125 10 15 20【答案】改错1:将第13行 "temp[0]="\0" 修改为 temp[0]='\0'改错2:将第 14行 if(k<j) 修改为if(k>j)改错3:将第16行 pmax=temp,修改为strcpy(pmax,temp);改错4:将第24行i=count(a[],max[])修改为i=count(a,max);2011年(春季)江苏省计算机二级考试C语言上机部分试卷解析上机试卷(01)一、改错题if(str[j]=='a' || str[k-1]=='e') 改为 &&if((k-j)%2=0) 改为==for(m=k-1;m>j;m--) 改为m=j;m<k-1;m++wordchange(string[80]); 改为string二、编程题#include<stdio.h>#define N 5int isprime(int m){ int i;for(i=2;i<=m/2;i++)if(m%i==0)return 0;retum 1;}void cresort(int a[][3],int n){ int i,j,k,m,c,t;for(i=0;i<n;i++){c=isprime(a[i][0])+isprime(a[i][1]);switch(c){case 0:a[i][2]=1;break;case 2:a[i][2]=4;break;case1:if(isprime(a[i][0]))a[i][2]=3;else a[i][2]=2;break; }}for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)}2011年(春季)江苏省计算机二级考试C语言上机部分试卷解析上机试卷(02)一、改错题【答案】改错1:将第13行 "temp[0]="\0"修改为 temp[0]='\0'改错2:将第 14行 if(k<j) 修改为if(k>j)改错3:将第16行 pmax=temp,修改为strcpy(pmax,temp);改错4:将第24行i=count(a[],max[])修改为i=count(a,max);。