2010年上海市高等学校计算机等级考试试卷二级C语言程序设计

合集下载

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

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

全国计算机等级考试二级C语言机试真题2010年9月(总分:100.00,做题时间:90分钟)一、程序填空题(总题数:1,分数:30.00)1.请补充fun函数,该函数的功能是:判断一个年份是否为闰年。

例如,1900年不是闰年,2004是闰年。

[注意] 部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

[试题源程序]#include<stdio.h>#include<conio.h>int fun(int n)int fiag=0;if(n%4==0)if( (1) )fiag=1;if( (2) )flag=1;return (3) ;void main()int year;clrscr();printf("Input the year:");scanf("%d", &year);if(fun(year))printf("%d is a leap year./n", year);elseprintf("%d is not a leap year./n", year);(分数:30.00)填空项1:__________________ (正确答案:[1] n%100 !=0[2] n%400==0[3] flag)解析:[解析] 题的关键是要知道闰年的定义,如果年份能被4整除但不能被100整除,或者能被400整除,这两种情况满足之一都是闰年。

填空1:显然此处属于第一种情况,能被4整除但不能被100整除。

所以这里应该填n%100!=0,只有满足这个条件,flag才能被赋值1。

填空2:此处属于第二种情况,能被400整除,所以应该填n%400==0。

填空3:从程序中可以知道,当满足以上两种情况之一时,flag就被赋值1,显然flag属于标志单元。

再看主函数中对fun()函数的调用,显然需要返回的值不是真就是假,即函数fun()中标志单元flag的内容。

2010年上海市高等学校计算机等级考试试卷二级C语言程序设计

2010年上海市高等学校计算机等级考试试卷二级C语言程序设计

2010年上海市高等学校计算机等级考试试卷二级 C语言程序设计( C 卷)(本试卷考试时间 120 分钟)一、单选题1. C程序是由_______组成的。

A. 子程序B. 过程C. 子函数D. 主函数和子函数2. 若有定义语句:char c='\n'; 则变量c _______。

A. 包含4个字符B. 包含2个字符C. 包含1个字符D. 说明不合法,c的值不确定3. 设有float x=1.25; int n=x; 则语句printf("%.2f,%d\n",x,n);的输出是:_______ 。

A. 1.25,1.25B. 1,1C. 1,1.25D. 1.25,14. 设x为int型变量,且初值为 'f',则执行printf("%c\n", 'A'+(x-'a'+1));后的输出结果是_______。

A. GB. HC. ID. J5. 设有int n; 则判断“n为二位数(10至99)”的表达式是:_______ 。

A. 10<=n<=99B. 10<=n || n<=99C. 10<=n, n<=99D. 10<=n && n<=996. 下列if语句中,错误的是 _______。

A. if(a==b) a-- else b++;B. if(a-b>0) printf("a>b\n");C. if(x>0&&x<10) y=x*x-1.5;D. if(x) y+=1;7. 设:int i,n ; float sum; 则求调和级数s=1+1/2+1/3+...前n项之和的正确循环语句是_______。

A. for(i=1;i<=n;i++) sum+=1/i ;B. for(i=1,sum=0.0;i<=n;i++) sum+=1/i;C. for(i=1,sum=0.0;i<=n;i++) sum+=(float)(1/i) ;D. for(i=1,sum=0.0;i<=n;i++) sum+=1.0/i;8. C程序中,return语句的作用是_______。

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。

2010年3月全国计算机等级考试二级C语言笔试真题及参考答案

2010年3月全国计算机等级考试二级C语言笔试真题及参考答案

2010年3月全国计算机等级考试二级C语言笔试真题及参考答案一、选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

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

详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a-b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#include<stdio.h>main(){ char a,b,c,d;2scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (a<b)第 3 页共 13 页if(a<c)k=a;else k=c;elseif(b<c)k=b;else k=c;以下选项中与上述if语句等价的语句是A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);C)k=(a<b)?((a<c)?a:):((b<c)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序#include<s七dio.h>main(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf("%d\n",k++);}4程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#include <stdio.h>void fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)第 5 页共 13 页C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b[i]]);printf("%d\n", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#include <stdio.h>main(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="\n123\\";printf("%d %d\n", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include <stdio.h>#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i<N/2;i++){printf("%d",a[i]);}6printf("\n");}程序运行后的输出结果是A)1313B)2234C)3234D)1234(33)有以下程序#include <studio.h>int f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%d\n",s);}int f(int t[],int n){ if(n>0)return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程序#include <stdio.h>int fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++)s=fun();printf("%d\n",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include <stdio.h>#define SUB(a)(a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;第 7 页共 13 页printf("%d\n",d);}程序运行后的输出结果是A)0B)-12C)-20D)10(36)设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.OD)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;8(39)有以下程序#include <stdio.h>main(){ int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#include <stdio.h>main(){FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。

2010年上海市高等学校计算机等级考试试卷二级_C语言程序设计_(_E_卷)

2010年上海市高等学校计算机等级考试试卷二级_C语言程序设计_(_E_卷)

2010年上海市高等学校计算机等级考试试卷二级 C语言程序设计( E 卷)(本试卷考试时间 120 分钟)一、单选题 ( 本大题 15 道小题,每小题 1 分,共 15 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。

1. 以下C程序中预处理命令写法正确的是:答案: DA. #include (stdio.h)B. #include [stdio.h]C. #include {stdio.h}D. #include <stdio.h>2. 设有变量定义语句char a; 则下面的赋值语句中 ( ) 是正确的。

答案: AA. a='&';B. a="&";C. a=' ' ';D. a='16' ;3. 设有char ch; 与语句“ch=getchar();”等价的语句是:答案: DA. printf("%c",ch);B. printf("%c",&ch);C. scanf("%c",ch);D. scanf("%c",&ch);4. int a=2, b=5;则表达式21%9/(float)a+4/b*b的运算结果为( )。

答案: CA. 2B. 1C. 1.5D. 05. 能正确表示逻辑关系"a>=10 或 a<=0"的C语言表达式是( )。

答案: CA. a>=10 or a<=0B. a<=0|a>=10C. a<=0||a>=10D. a>=10 && a<=06. 设有int n=60;写出下列语句的运行结果switch (n/10){case 6: printf("@");break;case 5: printf("#");default: printf("$");}答案: DA. @#$B. #$C. $D. @7. 设有int i; 以下语句中,循环次数为100次的语句是:答案: DA. for ( i=0; i<=100; i++ )B. for ( i=0; i<99; i++ )C. for ( i=1; i<99; i++ )D. for ( i=0; i<100; i++ )8. C程序中,用于提前结束本次循环、进行下一次循环的语句是( )。

2010年3月全国计算机等级考试二级C语言笔试试题(含参考答案)

2010年3月全国计算机等级考试二级C语言笔试试题(含参考答案)
(32)有以下程序
#include<stdio.h>
#define N 8
void fun(int *x,int i)
{*x=*(x+i);}
main()
{ int a[N]={1,2,3,4,5,6,7,8},i;
fun(a,2);
for(i=0; i<N/2); i++)
{ printf("%d",a[i]);}
C)概念设计阶段D)物理设计阶段
(10)有两个关系R和T如下:
R T
A
B
C
a
1
2
b
2
2
c
3
2
d
3
2
A
B
C
c
3
2
d
3
2
则由关系R得到关系T的操作是
选择B)投影C)交D)并
(11)以下叙述正确的是
A)C语言程序是由过程和函数组成的
B)C语言函数可以嵌套调用,例如:fun(fun(x))
C)C语言函数不可以单独编译
void f(struct A t);
main()
{struct A a={1001,"ZhangDa",1098.0};
f(a); pringt("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct A t)
{t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}
}
程序运行后的输出结果是
A) 6 B)10 C) 11 D)15
30)有以下程序
#include<stdio.h>

2010年3月二级C语言考试真题(附答案)

2010年3月二级C语言考试真题(附答案)

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

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

详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a—b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a ;D)i=!a;(15)有以下程序#includemain(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)1234则输出结果是A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (a<B)< p>if(a< p>else k=c;elseif(belse k=c;以下选项中与上述if语句等价的语句是A)k=(a<C)?B:C;< p>B)k=(a<B)?((Bc)?b:c);C)k=(a<B)?((A<E)?A:E):((B<E)?B:C);< p>D)k=(a<C)?A:C;< p>(20)有以下程序#includemain(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++) {b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#includemain(){int k=011;printf("%d\n",k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#includevoid fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++) s=s+a[b[i]]);printf("%d\n", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#includemain(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++) t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="\n123\\";printf("%d %d\n", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i<>{printf("%d",a[i]);}printf("\n");}程序运行后的输出结果是A)1313B)2234C)3234D)1234(33)有以下程序#includeint f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%d\n",s);int f(int t[],int n){ if(n>0) return t[n-1]+f(t,n-1); else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程序#includeint fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++) s=fun(); printf("%d\n",s);}程序运行后的输出结果是A)OC)4D)8(35)有以下程序#include#define SUB(a) (a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是A)0B)-12C)-20D)10(36)设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include#includestruct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.OD)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{ int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#includemain(){ int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#includemain(){ FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB) 28cC) abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。

上海市高等学校计算机等级考试试卷二级C语言程序设计(B卷)

上海市高等学校计算机等级考试试卷二级C语言程序设计(B卷)

上海市⾼等学校计算机等级考试试卷⼆级C语⾔程序设计(B卷)上海市⾼等学校计算机等级考试试卷⼆级 C语⾔程序设计( B 卷)⼀、单选题1. 下列C语⾔的标识符中,不合法的标识符为____________A. starB. 1234C. _a100D. circuit92. 若已定义: int x=10;则表达式 x=(4*5,x*5,x+25) 的值是 ______ 。

A. 20B. 45C. 125D. 353. 若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执⾏语句: scanf(“%d, %f”,&x,&y,); 时,正确的键盘输⼊是 ______ 。

A. 55,55.5↙B. x=55, y=55.5↙C. 55↙55.5↙D. x=55↙y=55.5↙4. 若有说明语句:int x=25,y=20,z=30;则执⾏语句:if(x>y) {y=z; z=x;} x=y; printf(“%d,%d,%d”,x,y,z); 后,输出是____________A. 25,20,30B. 30,30,25C. 25,30,30D. 25,30,255. 程序段:int num=2;while(num)printf(“%d ,”,num--);的运⾏结果是_______________A. 2,1,B. 2,1C. 2,1,06. 若有说明:int a[3][4],s;则对数组a的元素引⽤正确的是____________A. s=0; for(i=0;i<=3;i++) for(j=0;j<4;j++) s+=a[i][j];B. s=0; for(j=0;j<=4;j++) for(i=0;i<3;i++) s+=a[i][j];C. s=0; for(i=0;i<4;i++) for(j=0;j<=3;j++) s+=a[j][i];D. s=0; for(i=0;i<3;i++) for(j=0;j<4;j++) s+=a[i][j];7. 如果形参获取实参的地址,则____________作为函数调⽤时的实参。

国家计算机二级C语言历年真题及答案

国家计算机二级C语言历年真题及答案

全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共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) 可封装D) 自顶向下C) 模块化D) 逐步求精(7)软件详细设计产生的图如下:该图是A) N-S图B) PAD图C) 程序流程图D) E-R图(8)数据库管理系统是A)操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(9)在E-R图中,用来表示实体联系的图形是A) 椭圆图B) 矩形C) 菱形D) 三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A) 选择B) 投影C) 交D) 并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0C)3,2D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c;B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c;D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#includemain(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是A)3B)5C)7D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1;else k=0;20)有以下程序#include{ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++;printf(“%d\n”,n);}程序运行后的输出结果是A)0B)2C)3D)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a=’a’;B)char a=’\n’;C)char a=’aa’;D)char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68C)E,DD)输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是A)32B)12C)21D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<N;I++)< p="" />{ max=MIN;if(maxreturn max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(maxD)赋值语句max=MIN;放错了位置(26)有以下程序#includemain(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1](28)有以下程序#include#includemain(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序#includemain(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(30)有以下程序#include#includemain(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun;B)viod *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char);pf=&fun;(34)有以下程序#includeint f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7B)8C)9D)10(35)有以下程序#include#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]=”string”;c=str;B)scanf(“%s”,c);C)c=getchar();D)*c=”string”;(38)有以下程序#include#includestruct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1001,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16B)8C)4D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。

2010年3月C语言二级真题及答案

2010年3月C语言二级真题及答案

2010年3月全国计算机等级考试二级笔试试卷C语言程序设计及参考答案绝密★启用前2010年3月全国计算机等级考试二级笔试试卷C语言程序设计及参考答案(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分。

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

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

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

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

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

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)软件质量难以控制C)软件成本不断提高(5)软件生命周期是指A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件从需求分析、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程(6)面向对象方法中,继承是指A)一组对象所具有的相似性质B)一个对象具有另一个对象的性质C)各对象之间的共同性质D)类之间共享属性和操作的机制(7)层次型、网状型和关系型数据库划分原则是A)记录长度B)文件的大小B)联系的复杂程度D)数据之间的联系方式(8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是A)一对一B)一对多C)多对多D)多对一(9)数据库设计中反映用户对数据要求的模式是A)内模式B)概念模式C)外模式D)设计模式(10)有三个关系R、S 和T 如下:R S TA B Ca 1 2b 2 1c 3 1则由关系R 和S 得到关系T 的操作是A)自然连接B)交C)投影D)并A B C D c 3 1A D c 4(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)有以下程序#includemain(){ 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){ case 0: a++; break;case 1: b++; break;default: a++; b++; }B) switch ((int)x/2.0){ case 0: a++; break;case 1: b++; break;default : a++; b++; }C) switch((int)x%2){ case 0: a++; break;case 1: b++; break;default : a++; b++; }D)switch((int)(x)%2){ case 0.0: a++; break;case 1.0: b++; break;default : a++; b++; }(20)有以下程序#includemain(){ 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)有以下程序#includemain(){ int y=10;while(y--);printf(“y=%d\n”,y);}程序执行后的输出结果是A)y=0 B)y=-1 C)y=1 D)while 构成无限循环(22)有以下程序#includemain(){ 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 0 C) 6 3 D) 7 1(24)有以下程序#includeint 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 10 int 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)有以下程序#includevoid 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,4 C) 3,1 D)4,1(30)有以下程序(函数fun 只对下标为偶数的元素进行操作)#includevoid 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[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(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[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>{ char a[20]=”ABCD\0EFG\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)有以下程序#includevoid 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)有以下程序#includeint 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)有以下程序`#include <stdio.h>#include <stdlib.h>{ int *a,*b,*c;a=b=c=(int *)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;p rintf(“%d,%d,%d\n”,*a,*b,*c);}程序运行后的输出结果是A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,3(38)有以下程序#includemain(){ 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)1,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)有以下程序#includemain(){ short c=124; c=c ;printf(“%d\n”,c);}若要使程序的运行结果为248,应在下划线处填入的是A)>>2 B) |248 C)& 0248 D) <<1二、填空题(每空2 分,共30 分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。

2010年9月全国计算机等级考试二级C语言笔试试题答案及解析

2010年9月全国计算机等级考试二级C语言笔试试题答案及解析

2010年9月全国计算机二级C语言笔试试题:文字版一、选择题(每小题2分,共70分)下列各题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,200B)实数:1.5E2.0C )字符斜杠:…\‟D)字符串:"\007"(16)表达式a+=a-=a=9的值是A)9B)_9C)18D)0(17)若变量已正确定义,在if (W)printf(“%d\n,k”);中,以下不可替代W的是A)a<>b+cB)ch=getchar()C)a==b+cD)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)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】序号的横线上,答在试卷上不得分。

二级C语言2010年秋季考试(真题汇总)

二级C语言2010年秋季考试(真题汇总)

计算机等级历年真题(二级C语言)2011年05月01日2010年秋季考试(真题汇总)一、选择题部分1.述一个算法可以有不同的方式,常见的有()。

A.高级语言、自然语言和伪代码B.机器语言、汇编语言和高级语言C.汇编语言、高级语言和低级语言D.自然语言、流程图和伪代码2.下列四个运算符,按优先级别由高到底排列的是()A. !、%、=、==B. %、!、==、=C.!、=、%、== D.!、%、==、=3.若已定义:int i=5,m=1;则下列语句不会产生无限循环。

A.do {m+=3; B, for(;i<10;)}while(i==5); m+=3;C. while(i=1)D. for(;i>0;i--)m+=3; m+=3;4.下列程序段的运行结果是()。

Int arr[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};Printf(“%d\n”,arr[1][3]);A.3B. 12C. 8D.115.下列叙述正确的是()。

A.函数的定义和调用都不允许嵌套B.函数的定义和调用都允许嵌套C.函数的定义允许嵌套,但函数的调用不允许嵌套D.函数的定义不允许嵌套,但函数的调用允许嵌套6.若已定义:int a[5]={1,2,3,4,5},*p=a;且p值未发生变化,下列不能表示a[1]地址的是()。

A. a+1B. ++pC. p+1D. a++7.若已定义:struct student {int num;float score;}stu[4];以下错误的语句是()。

A. printf(“%d”,(*stu).num);B. *(stu)=*(stu+1);C. stu[0]->num=101;D. stu[0]=stu[1];8.下列对枚举类型的定义正确的是()。

A. enum a{“A”,”B”,”C”};B. enum a{x=-2,y=1,z=3};C. enum a={A,B,C};D. enum a={“A”,”B”,”C”};9.下列合法的浮点数的是()A .2E0.5 B. 65 C.123 D.E210.若已定义:double x,y;则下列表达式不能正确计算(x-2)/3*y的是()A. y*(x-2)/3B. (x-2)*y*1/3C. y/3*(x-2) D .(1/3)*(x-2)*y11.下列当x的值在5至10之间为“假”,否则为“真”的逻辑表达式为()A x>=5&&x<=10B !(5<=x && x<=10)C x<=5 && x>=10D !(5<=x<=10)12若已定义:char str1[20]=”guangzhou”,str[20]=”2010”;能形成字符串“GUANGZHOU 2010”的语句是()A strcat(strupr(str1),str2);B strcpy(str2,strupr(str1));C strcpy(strupr(str1),str2);D strcat(str2,strupr(str1));13下列叙述正确的是()A 为提高程序运行速度可在源程序中加入一些宏定义B 一个C语言源程序只能有一条预处理命令C 宏定义不占用程序运行时间,但与程序中的语句一样需要编程D 宏定义中的宏名必须用大写字母表示14 下列程序的运行结果是()void fn(int *p,int n){int j;for(j=0;j<i;j++)*(p+j)+=10;}void main(){int a[5]={1,2,3,4,5};int i;fn(a,5);for(i=0;i<=5;i++)printf(“%d”,*(a+i);A . 1 2 3 4 5 B. 1 2 3 4 15 C. 11 2 3 4 5 D . 11 12 13 14 1515.下列不合格的字符常量的是()。

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

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

全国计算机等级考试二级C语言真题2010年9月(总分:100.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:40,分数:70.00)1.下列叙述中正确的是( )。

(分数:2.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构√C.线性表的链式存储结构所需要的存储空唰一般要少于顺序存储结构D.上述三种说法都不对解析:[解析] 线性表的存储分为顺序存储和链式存储。

在顺序存储中,所有元素所占的存储空间是连续的,各数据元素在存储空间中是按逻辑顺序依次存放的。

所以每个元素只存储其值就可以了,而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。

所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。

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

(分数:2.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化√D.上述三种说法都不对解析:[解析] 在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。

栈跟队列不同,元素只能在栈顶压入或弹出,栈底指针不变,栈中元素随栈顶指针的变化而动态变化,遵循后进先出的规则。

3.软件测试的目的是( )。

(分数:2.00)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误√解析:[解析] 软件测试的目的是为了发现程序中的错误,而软件调试是为了更正程序中的错误。

4.下面描述中,不属于软件危机表现的是( )。

(分数:2.00)A.软件过程不规范√B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高解析:[解析] 软件危机主要表现在以下6个方面:①软件需求的增长得不到满足。

2010年3月全国计算机等级考试二级C语言笔试试题(含参考答案)-推荐下载

2010年3月全国计算机等级考试二级C语言笔试试题(含参考答案)-推荐下载

(8) 在学生管理的关系数据库中,存取一个学生信息的数据单位是
A)文件
B)数据库
C)教务管理系统 D)浏览器
B)尽可能多地发现程序中的错误 D)确定程序中错误的性质
B)软件详细设计的工具 D)面向对象方法的需求分析工具
C)维护阶段
C)字段
(9) 数据库设计中,用 E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库 二级 C 语言程序设计试卷 第 1 页 (共 12 页)
2010 年 3 月全国计算机等级考试二级笔试试卷
(考试时间 90 分钟,满分 100 分)
一、选择题((1)—(10)、(21)—(40)每题 2 分,(11)—(20)每题 1 分。共 70 分) 下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写 在答题卡上,答在试卷上不得分。
D)上述三个阶段
D)记录
设计的 A)需求分析阶段 C)概念设计阶段
(10) 有两个关系 R 和 T 如下:
R
A
a
b
c
d
B
1
2
3
3
则由关系 R 得到关系 T 的操作是
选择
C
2
2
2
2
B)投影
(11) 以下叙述正确的是 A)C 语言程序是由过程和函数组成的 B)C 语言函数可以嵌套调用,例如:fun(fun(x)) C)C 语言函数不可以单独编译 D)C 语言中除了 main 函数,其他函数不可以作为单独文件形式存在
二级 C 语言程序设计试卷 第 3 页 (共 12 页)
C、12 3
C、2
B、switch(a==1)
}
{ case 0 : a=b;break;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括 D_4_1.C文件和D_4_1.EXE文件)保存到指定目录中。 功能说明:编写程序,实现以下成绩处理功能(输出格式参见示例): (1)输入学生数n和n个成绩(整数类型,数组名记为a,假设 1≤n≤50); (2)统计n个学生中及格(≥60分)人数及其平均成绩(保留一位小 数); (3)统计n个学生中不及格(<60分)人数及其平均成绩(保留一位小 数)。 运行示例: 输入:8 70 99 50 88 53 48 60 78 输出:Pass:5,79.0 Fail:3,50.3 2.编程题2 编程要求: 请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括 D_4_2.C文件和D_4_2.EXE文件)保存到指定目录中。 功能说明:编写程序,通过以下步骤验证一个正整数是否符合特定的规 则: (1)输入一个4位正整数n,将n分拆成a与b,a为n的低2位,b为n的高2 位; (2)计算a的所有因子之积,记为s(当1≤i<a时,如果a是i的倍数, 则i是a的因子); (3)如果s的低2位等于b,则输出"Yes",否则输出"No"; (4)将a,b,s的值保存到文本文件"D42.TXT"中。 输出格式参见以下示例。 运行示例1: 输入:4412 输出:12: 1*2*3*4*6=144, Yes 运行后文件内容:12 44 144 说明:输入数为4412(对应n)分拆为12(对应a)和44(对应b),12 的因子为1、2、3、4和6,累乘值为144(对应s),s的低2位和b相等, 输出"Yes"。a,b,s的值保存在文件中。
D. swap( p, q ); 13. 若有结构体定义及初始化语句: struct node { int num; float score; } stu[2]= {101,91.5,102,92.5},*p=stu; 则表达式p->score的结果是:_______ 。 A. 101 B. 91.5 C. 102 D. 92.5 14. 设有定义FILE *fp;将整数n以文本方式写到fp文件的语句: _______。 A. fp = fopen( "file.txt", "w" ); B. fprintf( fp, "%d", n ); C. fwrite( &n, sizeof(int), 1, fp ); D. fclose(fp); 15. 假定建立了如图6-14所示的链表结构,指针p指向如图6-14所示的 结点,则将r所指结点直接插入p所指结点后的语句是:_______。
D. if(x) y+=1; 7. 设:int i,n ; float sum; 则求调和级数s=1+1/2+1/3+...前n项 之和的正确循环语句是_______。 A. for(i=1;i<=n;i++) sum+=1/i ; B. for(i=1,sum=0.0;i<=n;i++) sum+=1/i; C. for(i=1,sum=0.0;i<=n;i++) sum+=(float)(1/i) ; D. for(i=1,sum=0.0;i<=n;i++) sum+=1.0/i; 8. C程序中,return语句的作用是_______。 A. 终止程序运行 B. 返回到上层循环 C. 返回到外层结构 D. 返回到上层函数 9. 以下数组定义语句中,错误的是_______。 A. int a[][3]; B. int a[][3]={1,2,3,4,5,6,7,8,9}; C. int a[2][3]={1,2,3,4,5,6}; D. int a[2][3]={1,2,3}; 10. 设有变量定义:char st[]="computer"; int i=0; char *s=st; 当执行完语句:while(*s++!= 'u') i++; 之后,则_______。 A. i的值为5,*s的值为't' B. i的值为5,*s的值为'u' C. i的值为4,*s的值为't' D. i的值为4,*s的值为'u' 11. 设char b[5], *p=b; 下列赋值语句中 _______是正确。 A. b="abcd"; B. *b="abcd"; C. p="abcd"; D. *p="abcd"; 12. 若有函数原型和变量定义语句: void swap( int *p, int *q ); int x, y; 则合法的函数调用语句是:_______ 。 A. swap( x, y ); B. swap( *x, *y ); C. swap( &x, &表结构
A. r->data=p->data; p->data=r; B. p->data=r; r->next=p->next; C. r->next= p->next; p->next=r; D. p->next=r; r->next=p->next; 二、程序填空题 1. 程序运行时输出如图6-15所示的字符倒三角形。 abcdefg abcde abc a
2010年上海市高等学校计算机等级考试试卷 二级 C语言程序设计 ( C 卷)
(本试卷考试时间 120 分钟) 一、单选题 1. C程序是由_______组成的。 A. 子程序 B. 过程 C. 子函数 D. 主函数和子函数 2. 若有定义语句:char c='\n'; 则变量c _______。 A. 包含4个字符 B. 包含2个字符 C. 包含1个字符 D. 说明不合法,c的值不确定 3. 设有float x=1.25; int n=x; 则语句printf("%.2f,%d\n",x,n); 的输出是:_______ 。 A. 1.25,1.25 B. 1,1 C. 1,1.25 D. 1.25,1 4. 设x为int型变量,且初值为 'f',则执行printf("%c\n", 'A'+(x'a'+1));后的输出结果是 _______。 A. G B. H C. I D. J 5. 设有int n; 则判断“n为二位数(10至99)”的表达式是: _______ 。 A. 10<=n<=99 B. 10<=n || n<=99 C. 10<=n, n<=99 D. 10<=n && n<=99 6. 下列if语句中,错误的是 _______。 A. if(a==b) a-- else b++; B. if(a-b>0) printf("a>b\n"); C. if(x>0&&x<10) y=x*x-1.5;
图6-15 字符倒三角形
源程序: #include <stdio.h> void main() { int i,j; char k; for(i=1;i<=4;i++) { for(j=1; ____1____;j++) putchar(' '); /* 输出空格 */ k='a'; for(j=9-2*i; ____2____;j--) { printf("%c",____3____); k++; } putchar('\n'); } getchar(); /*暂停程序,按任意键继续*/ } 2. 输入一个长度小于40的字符串到数组s,并复制到数组t中,再将s 中的字符串逆序连接到t的后面并输出。例如:输入"ABCD",则字符串t 为"ABCDDCBA"。 源程序: #include <stdio.h> #include <string.h> void main() { char s[80],t[80]; int i; ____1____; printf("输入字符串:" ); scanf("%s",s); m=strlen(s); for(i=0; ____2____;i++) t[i]=s[i]; for(i=0;i<m;i++)
带错误原程序(见C:\KS\D_2_1.C): #include <stdio.h> main( ) { int k; scanf("%d",&n); for(k=1;k<=1000;k++) if(k%3==0&&k%5==0) { print("%d ",k); n--; if(n==0) break; } getchar(); /*本句没错,暂停程序,按任意键继续 */ } 2. 程序调试题2 调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改 该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确 的结果。将结果(包括D_2_2.C文件和D_2_2.EXE文件)保存到指定目 录中。 功能说明:从键盘输入一个十进制整数n,转化成八进制存入数组a,输 出八进制结果。 如输入:70 则输出:106 带错误原程序(见C:\KS\D_2_2.C): #include <stdio.h> main() { int a[10],n,i=0,j; scanf("%f",&n); do { a[i++]=n%8; n/=10; } while(n>0); for (j=i-1;j>=0;j--) printf("%d",a(j)); getchar(); /*本句没错,暂停程序,按任意键继续 */ }
相关文档
最新文档