2010年c语言试卷

合集下载

2010级C语言(A卷答案)

2010级C语言(A卷答案)

天津工业大学2010~2011学年第 2 学期高级语言程序设计(C语言) 试卷(A卷答案)一、单项选择题:(每题 1 分,共40 分)一、单项选择题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.以下各标识符中,能作为变量名使用的是【1】。

A) A#C B) my_x C) main D) ab*2.下列叙述中错误的是【2】。

A) 一个C语言程序必须有main()函数B) C语言规定函数内的每个语句以分号结束C) C语言程序书写格式规定,一行内只能写一个语句D) main()函数可以放在程序开头,也可以放在程序末尾3.设有变量定义语句char ch; 下列赋值表达式中,正确的是【3】。

A) ch='a' B) ch="a" C) ch='97' D) ch="97"4.执行下列程序段后,输出结果为【4】。

int x=023;printf("%d", x--);A)18 B) 19 C) 23 D) 245.表达式10!=9的值为【5】。

A) 1 B) 0 C) True D) False6.设有变量定义语句int x=5,y; 则表达式y=2.75+x/2的值是【6】。

A) 4 B) 5 C) 4.75 D) 5.257.下列选项中,所有变量均已正确说明且有初始值,则错误的C语句是【7】。

A) m++; B) m=a==b; C) a=b=c+2; D) a=b+c=2;8.设int i=0,j=2,k=3;则表达式(i+k)&k|j+i的值是【8】。

A) 0 B) 1 C) 2 D) 39.假设所有变量均为整型,执行表达式x=(y=4,z=16,k=32)后x的值是【9】。

A) 4 B)16 C) 32 D) 5210.有输入语句scanf("a=%d,b=%d,c=%d",&a,&b,&c);为了使a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式是【10】。

2010年全国计算机等级考试C语言试题及答案

2010年全国计算机等级考试C语言试题及答案

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

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

详细设计属于B A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是 A A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是D A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的C A)需求分析阶段B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是B A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是B A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是 D A)_1B)AaBcC)a_bD)a—b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是 C A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序 C #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);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是C A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是 D A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是 A A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是B 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)if(a<c)k=a;else k=c;elseif(b<c)k=b;else k=c;以下选项中与上述if语句等价的语句是C 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<e)?a:e):((b<e)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;20)有以下程序 A #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++);}程序运行后的输出结果是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)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]);}printf("\n");}程序运行后的输出结果是A)1313B)2234D)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;printf("%d\n",d);}程序运行后的输出结果是A)0C)-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;(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)一个队列的初始状态为空。

201012真题C语言(含答案)

201012真题C语言(含答案)

0124、以下叙述正确的是()。

A.注释部分可单独占用一行,也可跟在语句的后面B.函数体定界符也可用一对方括号"[ ]"C.C语言源程序每一行就是一条语句D.由于C语言源程序都是从main()函数开始执行,所以main()函数必须位于程序文件最前面0125、下面叙述错误的是()。

A.所有语句都必须以分号";"结束B.语句是构成C语言源程序的基本单位C.C语言源程序必须包含一个main()函数D.注释部分在程序编译和运行时不起作用0126、main()函数的位置()。

A.必须位于程序文件的最前面B.必须位于用户自定义函数的前面C.可位于用户自定义函数之前,也可位于用户自定义函数之后D.必须位于用户自定义函数的后面0127、()是结构化程序设计应遵循的原则。

A.选用的控制结构可有多个入口和一个出口B.根据需要可使用嵌套基本控制结构表示程序逻辑C.应使用顺序、选择、循环三种基本控制结构表示程序逻辑D.为提高程序效率,应尽量使用Goto语句0128、描述一个算法可以有不同的方式,常见的有()。

A.汇编语言、高级语言和低级语言B.自然语言、流程图和伪代码C.机器语言、汇编语言和高级语言D.高级语言、自然语言和伪代码0224、下列不属于C语言数据类型的是()。

A.双精度型B.枚举类型C.复数类型D.长整型0225、下列合法的浮点数的是()。

A..65B.E2C.2E0.5D.1230226、下列不合法的字符常量的是()。

A.'\t'B.'\n'C.'\\'D."a"0227、下列()是不正确的常量形式。

A.'x5'B.1.6E6C.1E-2D."\0"0228、下列()是不合法的用户标识符。

A._f6B.divC.5xD._num0324、若已定义:int n=2; double x=2.5; 则下列表达式中不符合语法的是()。

2010c语言上机题库100套

2010c语言上机题库100套
void fun( int *a, int *b)
{ int i, j ;
for(i = 0 ; i < M ; i++) b[i] = 0 ;
for(i = 0 ; i < N ; i++) {
j = a[i] / 10 ;
if(j > 10) b[M - 1]++ ; else b[j]++ ;
/************found************/
if n = = 0
return 1.0 ;
while( n >1 && n < 170 )
/************found************/
result *= n--
return result ;
第1套:
1.填空题
给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数为:739。
void fun(unsigned long *n)
{ unsigned long x=0, i; int t;
i=1;
while(*n)
/**********found**********/
{ t=*n % __1__;
/**********found**********/
if(t%2!= __2__)
{ x=x+t*i; i=i*10; }
*n =*Leabharlann /10; } 第2套:

c语言计算机考试真题 2010

c语言计算机考试真题 2010

根据历法知识,闰年是:输入的年份能被4整除,但不能被100整除,或者,能被400整除,结合C语言知识,编程实现一个年份是不是闰年#include<stdio.h>main(){int year;while(scanf("%d",&year),year){if(!(year%4!=0||year%100==0 &&year%400 !=0))printf("%d 年是闰年\n",year);elseprintf("%d 年不是闰年\n",year);}}第二题:编程实现求1!+2!+3!+4!......n!的值#include<stdio.h>void main(){int sum,i,n,j,k;sum=0;scanf("%d",&n);for(i=n;i>0;i--){k=1;for( j=i;j>0;j--){k=k*j;}sum+=k;}printf("%d",sum);}第三题:求两个正整数的最大公约数#include<stdio.h>main(){int a,b,c,t,m,n,max;scanf("%d%d",&m,&n);t=m*n;if(m<n){a=n;b=m;}else{a=m;b=n;}c=a%b;while(c!=0){a=b;b=c;c=a%b;}max=b;printf("max=%d\n",max);}第四题:根据读入的字符值,输出以该字符为填充字符的定长等腰三角形如输入:A 5输出为AAAAAAAAAAAAAAAAAAAAAAAAA#include "stdio.h"main(){int i,j,k,ch;printf("请输入字符:\n");scanf("%c",&ch);for(i=1;i<=5;i++){for(k=0;k<6-i;k++)printf(" ");for(j=1;j<=2*i-1;j++)printf("%c",ch);printf("\n");}}做好的程序打成压缩包(学号+姓名)发送至:ZG0124071@。

C语言理论题库2010

C语言理论题库2010

选择题:习题一 C语言的结构选择题1. 以下叙述中正确的是______。

A、C语言程序将从源程序中第一个函数开始执行B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C、C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D、main可作为用户标识符,用以命名任意一个函数作为主函数3. 计算机能直接执行的程序是______。

A、源程序B、目标程序C、汇编程序D、可执行程序4. 以下叙述中正确的是______。

A、C程序中的注释只能出现在程序的开始位置和语句的后面B、C程序书写格式严格,要求一行内只能写一个语句C、C程序书写格式自由,一个语句可以写在多行上D、用C语言编写的程序只能放在一个程序文件中5. 结构化程序设计所规定的三种基本控制结构是______。

A、输入、处理、输出B、树形、网形、环形C、顺序、选择、循环D、主程序、子程序、函数10. 下列叙述中正确的是______。

A、C语言编译时不检查语法B、C语言的子程序有过程和函数两种C、C语言的函数可以嵌套定义D、C语言的函数可以嵌套调用11. 以下叙述中正确的是______。

A、C程序的基本组成单位是语句B、C程序中的每一行只能写一条语句C、简单C语句必须以分号结束D、C语句必须在一行内写完12.以下选项中不合法的标识符是______。

A、printB、FORC、&aD、_0016. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是______。

A、大写字母B、连接符C、数字字符D、下划线17. 下列叙述中正确的是______。

A、每一个C程序文件中都必须要有一个main()函数B、在C程序中main()函数的位置是固定的C、C程序中所有函数之间都可以相互调用,与函数所在位置无关D、在C程序的函数中不能定义另一个函数习题二数据类型及其运算选择题1.表达式18/4*sqrt(4.0)/8的值的数据类型为()A、 intB、floatC、doubleD、不确定2. 以下关于long、int和short类型数据占用内存大小的叙述中正确的是______。

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

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

一、选择题:1、一个C程序的执行是从(A)。

A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在C 语言中,每个语句必须以(D )结束。

A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。

A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由(B )。

A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D )。

A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。

A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、C 语言只有32 个关键字和9 种控制语句。

2、每个源程序有且只有一个main 函数,系统总是从该函数开始执行C语言程序。

3、C 语言程序的注释可以出现在程序中的任何地方,它总是以\* 符号作为开始标记,以*/ 符号作为结束标记。

4、C 语言中,输入操作是由库函数scanf 完成的,输出操作是由库函数printf 完成的。

5、系统默认的C 语言源程序文件的扩展名是.c ,经过编译后生成的目标文件的扩展名是.obj,经过连接后生成的可执行文件的扩展名是.exe 。

6、C 语言的标识符只能由字母、数字和下划线三种字符组成。

第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的 C 语言浮点型常量是(C )。

A. 160.B. 0.12C. 2e4.2D. 0.02、以下选项中,( D )是不正确的C 语言字符型常量。

2010上学期C语言期末试卷选择题

2010上学期C语言期末试卷选择题

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

A、一个C源程序必须有且只有一个主函数B、一个C源程序可以包含零个或若干个子函数C、在C源程序中,注释说明必须位于语句之后D、C源程序的基本结构是函数2、下列叙述中,不正确的是()。

A.分号是C语句的必要组成部分B. C语句的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定有main表示3、以下不是C语言的特点是()。

A、C语言简洁紧凑B、C语言可以直接对硬件进行操作C、C语言的可移植性好D、C语言编程容易4、构成C语言的基本单位是()。

A、过程B、函数C、子程序D、命令5、一个C程序的执行是从()。

A、main函数开始,直到main函数结束B、main函数开始,直到最后一个函数结束C、从第一个函数开始,直到最后一个函数结束D、第一条语句开始,直到最后一条语句结束6、在C语言中,main函数的位置A、必须作为第一个函数B、必须作为最后一个函数C、可以任意D、必须放在它所调用的函数之后7、C程序是由()构成的。

A、一个主程序与若干个子程序B、一个或多个函数C、若干过程D、若干子程序8、以下叙述不正确的是()。

A.在C程序中,注释说明只能位于一条语句的后面B.注释说明被计算机编译系统忽略C.注释说明必须括在“/*”和“*/”之间,注释符必须配对使用D.注释符“/”和“*”之间不能有空格9、下列符号串中,属于C语言合法标识符的是。

A. ex-1B. ifC. _cookD. 951a10、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是()。

A、K%2B、K%2= =1C、(K%2)! =0D、!K%2= =111、对于一个完整的可运行的C源程序,下列哪一个说法是正确的?A、C 语言程序总是从第一个定义的函数开始执行。

B、在C语言程序中,要调用的函数必须在main()函数中定义。

C、C语言程序总是从main()函数开始执行。

C语言考题2010-2011第一学期

C语言考题2010-2011第一学期

程序基本知识答案:B main()函数是程序的入口和出口,和其它代码位置没关系。

答案:C C程序基本单位是函数。

答案:A答案:A答案:C基本数据类型和基本运算答案: B 浮点数两种表示方式,一种是普通小数方式,另一种是科学计数法。

科学计数法中间为e,前边为[1,10〕的实数表示尾数,后边为整数表示10的指数,正负均可。

答案:C 标识符开头只能是字母或下划线,不能是数字。

答案:D 单引号括起来的应该是单个字符答案:A 双引号括起来的是字符串答案:A答案:A 求余运算两边必须全为整数答案:D答案:D 这四种运算符中,非运算级别最高,算术运算比比较运算级别高,最低的是赋值运算答案:C D 项错误在于scanf从第2个参数开始应该是地址引用答案:D x先和自减1后的y相加,结果赋给y,再自加1答案:A 输入时必须包含逗号答案:C答案:A B项逻辑或两边都是假,C项做完逻辑与后才可以自加,D项括号内是赋值运算而非比较运算答案:B x+z后结果已经变成浮点数了答案:D y=0+1=1答案:D 3.5/2+11%2/2=1.75+1/2=1.75+0=1.75答案:B 数轴上一段连续区间必须用两个逻辑表达式相与得到。

答案:B 逻辑与两边明显矛盾答案:B 0.5+0=0.5第六次stop here答案:B 4.0/2+2%3=2.0+2=4.0答案:C答案:D a|b=3 ,10 右移3位为1答案:D答案:D 2+=2+4%2=4答案:D 非0值经过非运算后变成假,两个假或还是假答案:A x^y=2,2 左移两位为8答案:C答案:A 1/3结果为0,整个式子结果为0答案:A分支结构答案:A 其它三项都是如果k是0,则打印No,否则打印Yes。

答案:A 这是两步操作,n=2已经不是if结构里的了。

答案:A 条件判断为逻辑非,直接执行打印语句。

答案:C 余数为3,只能执行default后续printf(),后边没有break(),再执行case 1后边的printf().第七次stop here循环结构答案:A答案:B 两个i - -相当于i-=2答案:B 括号里的条件先比较,再将i减1答案:C 其它的i没有变化答案:A i=1 j=2 0+1+2=3j=3 3+1+3=7 依次类推,最终m为45 函数答案:A答案:D答案:B答案:C 传入实参为5和4,函数中两者比较,得到z为5,返回5+5=10并打印。

2010年3月全国计算机二级C语言笔试试卷

2010年3月全国计算机二级C语言笔试试卷

2010年3月全国计算机二级C语言笔试试卷含参考答案一、选择题(每题2分,共70分)(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏情况下需要比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数(log2.n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数(nlog2.n)(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的操作是A)选择B)投影C)交D)并(11)有以下程序#include<stido.h>main(){int a(3)(3)={[1,2,3],[4,5,6],[7,8,9]};int b[2]=(0),i;for(b=0,i<3;i++)}b=a[i(2)+a,2];for[i=0;i<3;5++}print f("$d",b(i)0];print f("a\n");程序运行后的输出的结果是[11](12)有以下程序#include<stido.h>#include<string.h>viod fun[char*str]{char temp;int n,j;n=strlen(str);temp=str[n-1];for(i=n-1;i>0;i++)str=str[i-1];str[0]=temp'}main[]char s[50];scan f["$s",s];fun(s);print f["$s\n",s];程序运行后输入:abcde<回车>,则输出结果是[12](13)以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出,请填空#include<stdio.h>main(){int x=256;print(%d,%d,%d\n”,,x/10%10,x/100);}(14)以下程序用以删除字符串中所有的空格,请填空#include<stdio.h>main(){char s[100]=(“Our teacher teach C language!”;int i);for(i=j=0;s!=’\o’;i++)IfS[j]=printf(“%s\n”,s);}(15)以下程序的功能是:借助指针变量找出数组元素中的最大值及各元素的下标值,请填空#include<stdio.h>main(){int a[10],*p,*s;for(p=a;p-a<10;p++)scanf(“d”,p);for(p=a,s-a;p-a<10;p++)if(*p>*s)s=printf(“index=%d\n”,s=a);}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;)};当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>14<CR>则输出的结果是A)1234B)12C)12D)12334(16)以下关于C语言数据类型使用的叙述中错误的是A)若要准确无误的表示自然数,应使用整数类型B)若要保存有效多位小数的数据,应使用双精度类型C)如要有不同类型的相关数据,应自定义结构体类型若只处理,应使用逻辑类型(17)若a是数值型,则逻辑表达式(a==1)|a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是A)switch(a){case1:a=b;break;default;a++;}B)switch(a==1){case0:a=b;break;case1:a++;}C)switch(a){defaule:a++;break;case;a==b;}D)switch(a==1){case1:a=b;break;case0:a++;}(19)有如下嵌套的if语句if(a<b)if(a<c)k=a;else k=c;elseif(b<c)b=k;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:c):((b<c)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序#include<stdio.h>main(){int i,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*);}}print(“m=d\n”,m);}程序运行后的输出结果是()A)m=6B)m=5C)m=4D)m=3(21)有以下程序#include<stdio.h>main(){int a=1,b=2;for(;a<8;a++)(b+=a;a+=2;)print(“d,d\n”,a,b);}程序运行后的输出结果是()A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数()#include<stdio.h>main(){int k=011;Print(“d\n”,k++);}程序运行后的输出结果是()A)12B)11C)10D)9(23)下列语句组中,正确的是A)char*s;s="Olympic";B)char*[?];s="Olympic";C)char*s;s={"Olympic"};D)char*[?];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)id=fine N=2008;int num[N];(26)有以下程序#includ<stdio.h>void fun(char*c;int d){*c=*c*1;d=c+1;printf("%c,c,".*c,d);}main(){char b='a',a='A';fun(&b,a);printf("%c,%c\n",b,a);}程序运行后输出的结果是:A)b,B,b,A B)b,B,B,A C)a,B,b,a D)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<void.h>main(){int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b];printf("%d/n",s);}程序运行后的输出结果是:A)6B)10C)11D)15(30)有以下程序:#include<void.h>main(){int b[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b];for(j=i;j<=i;j++);t=b[b[j]]printl("%d/n",t);}程序运行后输出的结果是:A)1B)3C)4D)9(31)若有以下定义和语句:char s1[10]="abcd!",*s2="\n123\\";printf("%d%d\n",strlen(s1),strlen(s2));则输出的结果是A)55B)105C)107D)58(32)有以下程序:#include<void.h>define NUMvoid 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);}printf("\n");}程序运行后输出的结果是:(33)有以下程序#include<stido>int f(int t(),int n());main()(int a(4)=1,2,3,4),s;shi(n,%);or int f"d/n",s);int f(int t(),int n))(if(n>0)return t(n-1)+f(t,n-1)else return0;)程序运行后的输出结果是A)4B)10C)14D)6(34)有以下程序#include<stdio,h>int fun()(main int x=1;z=2,return x;)main(int I,x=1;for(i=1;i<=2;i+1)s=tun();print f(&d\n,s);)程序运行后的输出结果是A)0B)1C)4D)8(35)有以下程序#include<stdio.h>#define SUB(a)(a)*(a)main()(int a=2,b=3,c=5,d;d=sun(a+b)*c;print f("$d\n",d);程序运行后输出的结果是A)0B)-12C)-20D)10A)1313B)2234C)3234D)1234 (36)设有定义:struct complex{int real,unreal:}data1={1,0},data2;则以下赋值语句中错误的是A)data2=2=data1B)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[]);{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.a=1002;strcpy(t.b,"changrong");t.c=1203.0;}程序运行后的结果是A)1001,zhangDa,1098.0B)1002,ChangRong,1202.0C)1001,ChangRong,1098.0D)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num;char name[20char c;struct{int day;int mont;int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1080的语句是A)*pw.year=1980;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include<stdio.h>main(){int a=2,b=2,c=2;prntf("%d\n",a/a&c);}程序运行后的输出结果是A)0B)1C)2G)3(40)有以下程序#include<stdio.h>main(){FILE*fp;char str[10];Fpfopen(“myfile,dat”,”w”);Fpuos(“abc”,p);foloue(fp);fp=fopen(“myfile,dat”,”a”);fprint(fp,”%d”,28);rewind(fp);fecant((p,”%a”,str);puts(str);fclose(fp)}程序运行后的输出结果是()Abc28c abc28因类型不一致而出错二、填空题(1)一个队列的初始状态为空,现将元素A,B,C,D,E,F,5,4,3,2,1一次入列,然后再依次退队则元素退队的顺序为:。

2010C 等级考试(答案)

2010C  等级考试(答案)

一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

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

(11)下列关于函数的描述中,错误的是DA)函数可以没有返回值B)函数可以没有参数C)函数可以是一个类的成员D)函数不能被定义为模板(12)若MyClass是一个类名,且有如下语句序列BMyClass c1,*c2;MyClass*c3=new MyClass;MyClass&c4=c1;上面的语句序列所定义的类对象的个数是A)1B)2C)3D)4(13)下列关于继承方式的描述中,错误的是DA)如果不显式地指定继承方式,缺省的继承方式是私有(private)B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员(14)将前缀运算符“--”重载为非成员函数,下列原型中,能正确用于类中说明的是CA)Decr&operator--(int);B)Decr operator--(Decr&,int);C)friend Decr&operator--(Decr&);D)frlend Decr operator--(Decr&,int);(15)若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列MyTemp p2;MyTemp p3[2];编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是CA)1B)2C)3D)0(16)在C++中,cin是个BA)类B)对象C)模板D)函数(17)在下列字符中,不允许作为C++标识符的是DA)b B)B C)_D)2(18)下列叙述中,错误的是BA)false是一个逻辑型常量B)"b"是一个字符型常量C)365是一个int常量D)3.1415926是一个double常量(19)若x和y是程序中的两个整型变量,则下列if语句中正确的是AA)if(x==0)y=1;else y=2;B)if(x==0)then y=1else y=2;C)if(x==0)y=1else y=2;D)if x==0y=1;else y=2;(20)要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是BA)int x[3]={0,0,0};B)int x[]={0};C)static int x[3]={0};D)int x[]={0,0,0};(21)关于函数中的<返回类型>,下列表述中错误的是DA)<返回类型>中有可能包含关键字intB)<返回类型>中有可能包含自定义标识符C)<返回类型>中有可能包含字符*D)<返回类型>中可能包含[](22)要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是DA)MyClass p=MyClass;B)MyClass p=new MyClass;C)MyClass&p=new MyClass;D)MyClass a,&p=a;(23)有如下两个类定义class XX{private:double x1;protected:double x2;public:double x3;};class YY:protected XX{private:double y1;protected:double y2;public:double y3;};在类YY中保护成员变量的个数是CA)1B)2C)3D)4(24)下列关于运算符重载的描述中,错误的是AA)可以通过运算符重载在C++中创建新的运算符B)赋值运算符只能重载为成员函数C)运算符函数重载为类的成员函数时,第一操作数是该类对象D)重载类型转换运算符时不需要声明返回类型(25)下列关于类模板的描述中,错误的是DA)类模板的成员函数都是模板函数B)可以为类模板参数设置默认值C)类模板描述了一组类D)类模板中只允许有一个类型参数(26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是AA)setprecisionB)setwC)setfillD)showpoint(27)下列程序段中包含4个函数,其中具有隐含this指针的是Bint fun1();class Test{public:int fun2();friend int fun3();static int fun4();};A)fun1B)fun2C)fun3D)fun4(28)有如下程序#include<iostream>using namespace std;class Test{public:Test(){}Test(const Test&t){cout<<1;}};Test fun(Test&u){Test t=u;return t;} int main(){Test x,y;x=fun(y);return0;}运行这个程序的输出结果是CA)无输出B)1C)11D)111(29)有如下程序#include<iostream>using namespace std;class A{public:A(int i=0):r1(i){}void print(){cout<<'E’<<r1<<’-‘;}void print()const{cout<<'C'<<r1*r1<<’-‘;} void print(int x){cout<<'P'<<r1*r1*r1<<’-‘;} private:int r1;};int main(){A a1;const A a2(4);a1.print(2);a2.print();return0;}运行时的输出结果是DA)P8-E4B)P8-C16-C)P0-E4-(30)下列代码声明了3个类class Person{};class Student:public Person{};class Undergraduate:Student{};下列关于这些类之间关系的描述中,错误的是BA)类Person是类Undergraduate的基类B)类Undergraduate从类Student公有继承C)类Student是类Person的派生类D)类Undergraduate是类Person的派生类(31)有如下程序#include<iostream>using namespace std;Class Base{public:Base(int x=0):valB(x){cout<<valB;}~Base(){cout<<valB;}private:int valB;};class Derived:public Base{public:Derived(int x=0,int y=0):Base(x),valD(y){cout<<valD;} ~Derived(){cout<<valD;}int valD;};int main(){Derived obj12(2,3);retuen0;}运行时的输出结果是AA)2332B)2323C)3232D)3223(32)下面是类Shape的定义:class Shape{public:virtual void Draw()=0;};下列关于Shape类的描述中,正确的是BA)类Shape是虚基类B)类Shape是抽象类看课本267页C)类Shape中的Draw函数声明有误D)语句“Shape s;”能够建立Shape的一个对象s(33)将运算符“+”重载为非成员函数,下列原型声明中,错误的是CA)MyClock operator+(MyClock,long);B)MyClock operator+(MyClock,MyClock);C)MyClock operator+(long,long);D)MyClock operator+(long,MyClock);(34)打开文件时可单独或组合使用下列文件打开模式①ios_base::app②ios_base::binary③ios_base::in④ios_base::out若要以二进制读方式打开一个文件,需使用的文件打开模式为CA)①③B)①④C)②③D)②④(35)有如下程序:#include<iostream>using namespace std;class B{public:B(int xx):x(xx){++count;x+=10;}virtual void show()const{cout<<count<<’_‘<<x<<endl;}protected:static int count;private:int x;};class D:public B{public:D(int xx,int yy):B(xx),y(yy){++count;y+=100;}virtual void show()const{cout<<count<<’-‘<<y<<endl;}private:int y;};int B::count=0;int main(){B*ptr=new D(10,20);ptr->show();delete ptr;return0;}运行时的输出结果是BA)1_120B)2_120C)1_20D)2_20二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【l】~【15】序号的横线上,答在试卷上不得分。

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】序号的横线上,答在试卷上不得分。

《C语言程序设计》试题库 C试卷2010年

《C语言程序设计》试题库 C试卷2010年

2010年石家庄经济学院C语言程序设计试卷共7页注意:所有答案写在答题纸上,答在本卷上无效。

一、选择题(共30分,每题2分)1、表达式202%4的值是()A)2 B)50 C)50.25 D)512、若a和n均是int型变量,设原来a的值为10,n的值为5,则执行表达式a+=++n后,变量a和n的值各为()A) a的值为15,n的值为6 B) a的值为16,n的值为6C) a的值为15,n的值为5 D) a的值为16,n的值为53、表达式7<12&&5!=9的值为()A) 1 B) 0C)假D)真4、对字符数组s赋值,不合法的一个是()。

A) char s[]="Beijing";B) char s[20]={"beijing"};C) char s[20];s="Beijing";D)char s[20]={'B','e','i','j','i','n','g'};A)A B)D C)C D)B5、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。

A) void B) int C) float D) double6、指出下面程序的输出结果。

( )#include <stdio.h>void main( ){int a[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};int i,j,n;n=9;i=n/5;j=n-i*5-1;printf("a[%d][%d]=%d\n", i,j,a[i][j]);}A) a[2][2]=6 B)a[1][3]=-3 C) a[2][3]=2 D) 不确定7、英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为( )A) 50 B) 66 C) 52 D) 688、已定义以下函数:fun(int *p){……………return *p;}该函数的返回值是 ( )。

2010年C语言真题及答案

2010年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)%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】序号的横线上,答在试卷上不得分。

2010年20套大学计算机C语言期末考试复习试题及答案

2010年20套大学计算机C语言期末考试复习试题及答案

一、判断共10题(共计10分)第1题(1.0分)题号:1488函数即可以嵌套定义,又可以嵌套调用.答案:N第2题(1.0分)题号:1256unsigned 和void 在C中都是保留字.答案:Y第3题(1.0分)题号:1280表达式++i表示对变量i自加1.答案:Y第4题(1.0分)题号:1282C语言源程序的基本结构单位是main函数.答案:N第5题(1.0分)题号:1276字符常量的长度肯定为1.答案:Y第6题(1.0分)题号:1469char a[]={'a','b','c'};char b[]={"abc"};数组a和数组b占用的内存空间大小不一样.答案:Y第7题(1.0分)题号:1249若有int i=10,j=2; 则执行完i*=j+8;后i的值为28.答案:N第8题(1.0分)题号:33int i,*p=&i;是正确的C说明。

答案:Y第9题(1.0分)题号:1250While循环语句的循环体至少执行一次.答案:N第10题(1.0分)题号:1510有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0.答案:Y二、单项选择共30题(共计30分)第1题(1.0分)题号:456执行下面程序后,输出结果是()。

main(){ a=45,b=27,c=0;c=max(a,b);printf("%d\n",c);}int max(x,y)int x,y;{ int z;if(x>y) z=x;else z=y;return(z);}A:45B:27C:18 D:72答案:A第2题(1.0分)题号:437下列数组说明中,正确的是()。

A:int array[][4];B:int array[][];C:int array[][][5];D:int array[3][];答案:A第3题(1.0分)题号:2396下面有关for循环的正确描述是()A:for循环只能用于循环次数已经确定的情况B:for循环是先执行循环体语句,后判断表达式C:在for循环中,不能用break语句跳出循环体D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来答案:D第4题(1.0分)题号:2817以下程序的输出结果是().main(){int i,j,k,a=3,b=2;i=(--a==b++)?--a:++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}A:i=2,j=1,k=3B:i=1,j=1,k=2C:i=4,j=2,k=4D:i=1,j=1,k=3答案:D第5题(1.0分)题号:2866若有下列定义,则对a数组元素地址的正确引用是().int a[5],*p=a;A:*(p+5)B:*p+2C:*(a+2)D:*&a[5]答案:C第6题(1.0分)题号:711下列选项中正确的语句组是()。

2010.10c语言试题

2010.10c语言试题

中国自考人()——700门自考课程永久免费、完整在线学习快快加入我们吧!全国2010年10月高级语言程序设计(一)试题课程代码:00342一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.用户自定义标识符正确的是( )A.3abB.intC.fa2_aD.sin(x)2.关于C语言程序描述正确的是( )A.函数必须要有return语句B.主函数必须位于程序的开头C.程序中每行只能写一条语句D.一个程序中只能有一个主函数3.设int i=8,a,b;double x=1.42,y=5.2;,正确的表达式是( )A.a+=(b=4)*(a=3)B.a=a*3=2C.x%(-3)+y* *3D.y=float(i)4.设int a[][2]={1,2,3,4,5,6,7};,其中缺省的行长度的最小值是( )A.2B.3C.4D.55.设char c=′A′;int i=1,j;,执行语句j=!c&&i++;后,i和j的值分别是( )A.0和1B.1和0C.1和65D.2和666.设typedef char STRING[255];STRING*s;,则s是( )A.字符数组B.字符变量C.字符指针数组D.字符指针变量7.设int x=6;,执行语句X+=X-=X*X;后,x的值是( )A.-60B.0C.6D.368.设int i=3,j=3;,表达式i+++j的值是( )A.6B.7C.8D.9第 1 页9.下列为C语言保留字的是( )A.realB.longC.pointerD.integer10.设int a=2,b=6,c=8;,表达式(a,b),(c,10)的值是( )A.2B.6C.8D.1011.变量定义并初始化正确的是( )A.int a=l,*p=a;B.int a=2,p=*a;C.int a=3,p=&a;D.int a=4,*p=&a;12.使用递归函数计算n!(n=0,1,2,,3,....)的是( )A. fac(int n)B. fac(int n){int i,f=- 1; {if(n==0) return 1; if(n==0‖n==1) return 1;else for(i=1 ;i<=n;i++) f*=i; else return n*fac(n-1);return f; }}C. fac(int n)D. fac(int n){int i=l,f=l; {int i=1,f=1;if(n==0) return l; if(n==0) return 1;else while(i<=n) f*=i++; else do { f*=i;}while (i++<n) return f; return f;} }13.设struct{int age;int num;}stu,*p=&stu;对结构型变量stu的成员age引用错误..的是( )A.stu.ageB.p->ageC.*p.ageD.(*p).age14.设int a[2]={1,2},*p=a;,则*p是( )A.元素a[0]的值B.元素a[0]的地址C.元素a[1]的值D.元素a[1]的地址15.设int a[10];,对数组元素引用正确的是( )A.a[10]B.a[′0′]C.a(6)D.a[10-10]第 2 页二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。

国家计算机二级c语言2010-2006年真题及答案

国家计算机二级c语言2010-2006年真题及答案

2010年9月二级C 语言笔试真题((1)—(10)每小题2分,(11)—(50)每题1分,共60分)(1)下列叙述中正确的是A )栈是“先进先出”的线性表B )队列是“先进先出”的线性表C )循环队列是非线性结构D )有序性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A )栈B )树C )队列D )二叉树(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A )10B )8C )6D )4(4)下列排序方法中,最坏情况下比较次数最少的是A )冒泡排序B )简单选择排序C )直接插入排序D )堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是A )编译软件B )操作系统C )教务管理系统D )汇编程序(6)下面叙述中错误的是A )软件测试的目的是发现错误并改正错误B )对被调试的程序进行“错误定位”是程序调试的必要步骤C )程序调试通常也称为DebugD )软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。

下列叙述中正确的是A )提高耦合性降低内聚性有利于提高模块的独立性B )降低耦合性提高内聚性有利于提高模块的独立性C )耦合性是指一个模块内部各个元素间彼此结合的紧密程度D )内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A )数据库设计B )数据库系统设计C )数据库维护D )数据库管理员培训(9)有两个关系R ,S 如下: R SA B Ca 3 2b 0 1c 2 1由关系R 通过运算得到关系S ,则所使用的运算为A )选择B )投影C )插入D )连接(10)将E-R 图转换为关系模式时,实体和联系都可以表示为A )属性B )键C )关系D )域(11)以下选项中合法的标识符是A ) 1-1B )1—1C )-11D )1--(12)若函数中有定义语句:int k ;,则A )系统将自动给k 赋初值0B )这时k 中值无定义C )系统将自动给k 赋初值-1D )这时k 中无任何值(13)以下选项中,能用作数据常量的是A )o115B ) 0118C )1.5e1.5D ) 115L(14)设有定义:int x=2;,以下表达式中,值不为6的是A ) x*=x+1B ) x++,2*xC )x*=(1+x )D )2*x,x+=2(15)程序段:int x=12;double y=3.141593; printf (“%d%8.6f”,x,y);的输出结果是A )123.141593B )123.141593C )12,3.141593D )123.141593(16)若有定义语句:double x,y,*px,*py,执行了px=&x, py=&y;之后,正确的输入语句是A )scanf (“%f%f”,x,y);B ) scanf (“%f%f”,&x,&y);C ) scanf (“%lf%le”,px,py);D ) scanf (“%lf%lf”,x,y);(17)以下是if 语句的基本形式:if (表达式) 语句 其中“表达式”A )必须是逻辑表达式B )必须是关系表达式C )必须是逻辑表达式或关系表达式D )可以是任意合法的表达式(18)有以下程序#include <stdio.h>main (){int x;scanf (“%d”,&x);if (x<=3); elseA B a 3 b 0 c 2printf(“%d\n”,x); }程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数 B)大于3且不等于10的整数C)大于3或等于10的整数 D)小于3的整数(19)有以下程序#include<stdio.h>Main(){int a=1,b=2,c=3,d=0;if(a= =1 &&b++= =2)if(b!=2 || c--!=3)printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c); }程序运行后的输出结果是A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1(20)以下程序中的变量已正确定义for(i=0;i<4;i++,i++for(k=1;k<3;k++);printf(*”);程序段的输出结果是A)******** B)**** C)** D)*(21)有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s); }注意,字母A的ASCII码值为65。

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

2010试题一、单选题(每小题2分,共20分)1. 表达式(4>3>2) 的值为_______.A.0 B.1 C.2 D.表达式错误2. 下面哪个表达式符合C语言语法_______.A.0.5%2 B.3&(0.5+0.5) C.4.6<<2 D.2==(3/2)3. 若有定义:int a[2][3]; 以下选项中能对a数组元素正确引用的是_______.A.a[2][!1] B.a[2][3] C.a[0][3] D.a[1>2][ !1]4. 以下程序段完全正确的是_______.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);5. 有定义语句:int *p[4];以下选项中与此语句等价的是_______.A.int p[4]; B.int **p; C.int *(p[ 4 ]);D.int (*p)[ 4 ];6. 若要定义一个具有4个元素的整型数组,以下错误的定义语句是A.int a[4]={0}; B.int b[]={0, 0,0, 0}; C.int c[1+3]; D.int i=4,d[ i ];7. 若有定义:static int a[3][4]= {0}; 则下面正确的叙述是_______.《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 1 / 10A. 只有元素a[0][0]可得到初值0B. 此说明语句不正确C. 数组a中各元素都可得到初值,但其值不一定为0D. 数组a中每个元素均可得到初值08. 对于以下变量定义,正确的赋值是_______.int *p[3], a[3];A.p=a B.p=&a[0]C.*p=a D.p[0]=*a9. 结构和变量定义如下,则对于“*p->str++”表达式语句,下面叙述正确的是_______.struct { int no; char *str;} a={1,”abc”}, *p=&a;A.* 作用在指针p上和B.++ 作用在指针str上C.++ 作用在str所指的内容D.表达式语句有错上10. 对于下面变量定义,赋值使用方法不正确的是_____。

struct Student { long num; char name[20]; } st1, st2={101,”Tom”}, *p=&st1;A.st1=st2 B.p->name=C.p->num=st2.num D.*p=st2试题二、填空题(每小题2分,共30分)1. 下面程序段的输出结果是_______.《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 2 / 10printf(“%d”,( 5 << 1 ) & ( 0x1f ^(按位异或)31 ));2. 若’a’的ASCII码值为97,那么下面程序段的输出是__123_____.127printf(“%d”,’d’+027(八进制));3. 下面代码段输出结果是___2 2 5____.int i,j,k;i=j=k=1;k+=1+(i++)+(++j);printf("%d#%d#%d",i,j,k);4. 下面代码段输出结果是___-1____.int s=-1;printf(“%d”,(unsigned int)s );5. 表达式1<<2+3的值为___32____.6. 执行下面程序代码后,s值为___30____.int i, s;for (i=10,s=0; ;i--) {if (i==0) break;else if(i%2) continue;s+=i;}7. 执行下面程序代码后,s值为____6___. 4int a=1, b=2, s=0;switch (a>b) {default: switch(s) {case 0:s+=1;default:s+=2;break;}《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 3 / 10case 1: s+=3; break;}8. 以下程序段的输出结果是___10____.#define MOD(x, y) x%yint a = 15, b = 100, z;z = MOD(b, a);printf("%d", z++);9. 对于以下递归函数f,调用函数f(2, '1', '2', '3')的输出结果是___1 3 12 32____.void f(int n, char a, char b, char c){ if(n == 1)printf("%c%c#", a, b) ;else{f(n-1, a, c, b);printf("%c%c#", a, b);f(n-1, c, b, a);}}10. 以下程序的输出结果是___3#6____.2#4#include <stdio.h>void f( int *a, int b ){《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 4 / 10static int k=0;*a += ++k;b +=2;}void main(){ int x=2, y=4;f(&x, y);f(&y, x);printf("%d#%d", x, y);}11. 以下程序的输出结果是___1#2____.#include <stdio.h>void f( int *a, int *b ){int *t;t = a, a = b, b = t;}void main(){ int x=1, y=2;f(&x, &y);《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 5 / 10printf("%d#%d", x, y);}12. 执行命令行程序:find –nx ould text.txt时,*++argv[1]的值是_______.13. 下列程序输出__7#0_____. 48 16#include <stdio.h>#include <string.h>void main( ){ char x[ ]=”STRING”;x[0] = 0;x[1] = ’\0’;x[2] = ’0’;printf(”%d#%d”,sizeof(x),strlen(x));}14. 用typedef 定义新类型名PNODE,使得PNODE表示含有10个structNode结构指针型元素的数组类型___typedef struct Note *PHODE[10] ____.15. 下面程序段的输出是__two e ___。

char *a[2]={"one", "two"}, **p=a;printf("%s#", *(p++)+1);printf("%c", **p-1);试题三、程序阅读题(每小题5分,共30分)1. 如果指针的长度为4字节,则下列程序的输出是_______.#include <stdio.h>《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 6 / 10short x[16][32], *y[32], i, j;int main(void){while(i < sizeof(x)/sizeof(x[0])) {y[i]=x[i];for(j=0; j < sizeof(y); j++) {x[i][j/sizeof(y[0])] = j + i * sizeof(x[0]);}i++;}for(i=0;i<5;i++) printf("%d#", y[1][i]);return 0;}2. 下列程序的输出是_______.#include <stdio.h>char s1[80]="abc56cdefghi\0jklm";int main(void){int j=0, k=0, c;char ch, bf=0, s2[80];《程序设计基础及实验》课程期末考试试卷, 2011年1月19日7 / 10while(ch=s1[j++]) {if(ch - bf != 1) {s2[k++] = ch;c=0;} else if(s1[j] - ch != 1) {if (c) s2[k++] = '-';s2[k++] = ch;} elsec++;bf = ch;}s2[k]='\0';printf("%s", s2);return 0;}3. 当输入:a1b2c3d<回车>时,下列程序的输出是_______.#include <stdio.h>void main(){char *p,s[8];《程序设计基础及实验》课程期末考试试卷, 2011年1月19日8 / 10long n;p=s;gets(p);while (*p !='\0'&& (*p>'8'||*p<'0')) p++;n=*p-'0';while(*++p !='\0')if (*p>'8'||*p<'0') continue;else n=n*8+*p-'0';printf("%ld",n);}4. 下列程序运行时输出结果为_______.#include <stdio.h>int findStr (char *str, char *substr){ int n;char *p , *r;n=0;while ( *str ){p=str;《程序设计基础及实验》课程期末考试试卷, 2011年1月19日9 / 10r=substr;while(*r)if(*r==*p) { r++; p++; }else break;if(*r=='\0')n++;str++;}return n;}void main(){char s1[80]="AAscA\\101\101scA\nAscA00AscA\0AscAs", s2[10]="Asc";printf("%d#", findStr(s1,s2));printf("%d#", findStr(s1+10,s2));printf("%d#\n", findStr(s1+25,s2));}5. 在调用执行下列showProcess函数时,如果第一个printList()函数调用《程序设计基础及实验》课程期末考试试卷, 2011年1月19日10 / 10输出的结果是:4 6 2 5 1 8,则第二个printList()函数调用输出的结果应该是_______.struct node {int data;struct node *next;};struct node *process(struct node *h, int n, int m){ struct node *p, *q;p=h;while (p!=NULL)if (p->data >=n && p->data <=m) {if (p==h) { p=p->next; free(h); h=p; };else { q->next=p->next;free(p);p=q->next;}} else {q=p;p=p->next;}《程序设计基础及实验》课程期末考试试卷, 2011年1月19日11 / 10return h;}void printList(struct node *h){ struct node *p=h;while (p!=NULL) {printf(“%d “, p->data);p=p->next;}}void showProcess(struct node *h){ printList(h); //第一个printListh=process(h,4,6);printList(h); //第二个printList}6. 下列源程序经编译链接后的可执行程序为prog.exe,以命令行方式运行:prog file1 file2 ,其中file1、file2分别是两个文本文件。

相关文档
最新文档