2010-2011年第二学期《C语言》试卷B
《c语言程序设计》试卷B答案及解析

C语言程序设计 海滨学院期末考试试卷(2010-2011 第二学期)(B)

北京交通大学海滨学院考试试题(B 卷)课程名称:C语言程序设计 2010-2011学年第二学期出题教师:计算机教学组专业:班级:姓名:学号:答题说明:本试卷共有六道大题,要求所有解答均写在答题卡上,否则无效。
上交试卷时按照发试卷时候的顺序整理试卷,平铺展开上交。
一、选择题(本题共30道题目,每题1分,共30分)1.以下叙述中正确的是()。
A)C语言比其他语言高级。
B)C语言可以不用编译就能被计算机识别执行。
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式。
D)C语言出现的最晚,具有其他语言的一切优点。
2.算法是为解决某特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是()。
A)有零个输入或多个输入 B)高效性C)有穷性 D)确定性3.表达式3.6-5/2+1.2+5%2的值是()。
A)4.3 B) 4.8 C) 3.3 D) 3.84.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符()。
A)必须为字母 B)必须为下划线C)必须为字母或下划线 D)可以是字母,数字和下划线中任一字符5.下列数据中,不合法的C语言实型数据的是()。
A)0.123 B)123e3 C)2.1e3.5 D)789.06.若有说明语句:char c='\72';则变量c()。
A)包含1个字符 B)包含2个字符C)包含3个字符 D)说明不合法,c的值不确定7.若有定义:int a=7;float x=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是()。
A)2.500000 B)2.750000C)3.500000 D)0.0000008.下列可用于C语言用户标识符的一组是()。
A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof9.以下不正确的叙述是()。
2011年9月全国计算机二级C语言考试真题及答案

2011年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)叶子结点总是比度为2的结点少一个B)叶子结点总是比度为2的结点多一个C)叶子结点数是度为的结点数的两倍D)度为2的结点数是度为1的结点数的两倍(4)软件按功能分为应用软件、系统软件和支撑软件(或工具软件)。
下现属于应用软件的是A)学生成绩管理系统B)C语言编译程序C)UNIX操作系统D)数据库管理系统(5)该系统总体结构图的深度是A)7 B)6 C)3 D)2(6)程序调试的任务是A)设计测试用例B)验证程序的正确性C)发现程序中的错误D)诊断和改正程序中的错误(7)下列关于数据库设计的叙述中,正确是的A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括A)概念模式B)内模式C)外模式D)数据模式(9)有三个关系R 、S 和T 如下: 则由关系R 和S 得到关系T 的操作是 A)自然连接 B)差C)交D)并(10)下列选项中属于面向对象设计方法主要特征的是A)继承 B)自顶向下 C)模块化 D)逐步求精(11)以下叙述中错误的是A)C 语言编写的函数源程序,其文件名后缀可以是.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)(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[]="";fun( a, strlen(a) ); puts(a);}程序运行后的输出结果是A) B) C) D)(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】序号的横线上,答在试卷上不得分。
C语言2010-2011-B参考答案

河南理工大学 2010~2011 学年第 1 学期高级语言程序设计试卷(B卷)标准答案及评分标准一、单项选择题(每题2分,共40分)1.C2.B3.D4.C5.B6.C7.C8.B9.A 10.B11.D 12.A 13.A/D 14.D 15.D16.C 17.D 18.C 19.D 20. A二、程序填空题(每空3分,共30分)21.c=getchar() /* 字母拼写错或缺少字母不扣分*/+65或+'A'22.k=ik=j23.s[i]<='9' && s[i]>='0' /* 数字未加单撇不扣分*/d[i]='\0' 或d[i]=024.strlen(str)-1 /* 没有减1扣1分*/j--25.i++s1[i++]=s2[j++] 或s1[i]=s2[j];i++;j++三、修改程序题(共有5处错误,每处3分,共15分)26.double fun(int n)result*=n--27.*sub=x-yscanf("%f%f",&x,&y) /* 改对一个得1分,多改但未改错不扣分*/calc(x,y,&add,&sub) /* 改对一个得1分,得够3分为止*/四、程序设计题(共2题,第一题5分,第二题10分,共15分)注意:编程方法不唯一,以下为参考答案。
另外,主要测试编程方法,语法错误在不影响阅读情况下可不扣分,如少写分号。
28.方法一:main(){ int a,b,c,d,max;scanf("%d,%d,%d",&a,&b,&c); /* 输入1分*/d=a>b?a:b; /* 比较占3分*/max=d>c?d:c;printf("%d\n",max); /* 输出1分*/}方法二:main(){ int a, b, c ;scanf("%d,%d,%d",&a,&b,&c);printf("%d\n",a>b?a>c?a:c:b>c?b:c);}方法三:使用if语句main(){ int a,b,c,d,max;scanf("%d,%d,%d",&a,&b,&c);max=a;if(b>max) max=b;if(c>max) max=c;printf("%d\n",max);}29.方法一:int isprime(int n){ int k,i;k=sqrt(n); /* 写成sqr不扣分*/for(i=2; i<=k; i++) /* 8分*/if(n%i==0) break;if(i>k) return 1; /* 返回值2分*/else return 0;}方法二:int isprime(int n){ int i;for(i=2; i<n; i++)if(n%i==0) break;if(i>=n) return 1; /* 写成i≥n不扣分,主要测试编程方法*/else return 0;}。
防灾科技学院C语言2010-2011-2期末试题

| | | | | | | |装| | | | |订| | | | | |线| | | | | | | | |防灾科技学院2010 ~ 2011学年第二学期期末考试C语言程序设计试卷(A)使用班级灾害信息工程系本科答题时间120一、判断题(本大题共10小题,每题1分,共10分。
对:打√,错:打×)1. C程序中的main函数必须放在整个程序的最前头( )2. 程序中的变量代表内存中的一个存储单元,它的值不可以随时修改( )3. C语言中,字符常量可以用单引号或双引号括起来( )4. 在switch-case语句中,必须使用default语句( )5. printf函数中,%c和%s都可以输出字符串。
( )6. 在对一维数组的全部数组元素赋初值时,可以不指定数组长度。
( )7. 主函数中定义的变量也只在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效。
主函数也不能使用其他函数中定义的变量。
( )8. 在C语言中存取变量值时,可以按直接方式存取,也可按间接方式存取。
( )9. 结构体类型所占用的内存字节数是所有成员变量占用的内存字节数的总和。
( )10. 从操作系统的角度看,每一个与主机相连的输入输出设备看作是一个文件。
( )二、单选题(本大题共20小题,每题2分,共40分。
)1. 以下叙述正确的是( C )A.在C程序中,main函数必须位于程序的最前面。
B.在C程序中每行只能写一条语句。
C.C语言本身没有输入输出语句。
D.在对C程序进行编译过程中,可以发现注释中的拼写错误2. C语言中用于结构化程序设计的3种基本结构是(A )A.顺序结构、选择结构、循环结构B.递归结构,循环结构,转移结构C.嵌套结构,递归结构,顺序结构D.循环结构,转移结构,顺序结构3. 以下各项中非法的语句标号是( C )A.flag:B.INT:C.3d:D.h_r_e:4. 以下语句的输出结果是()int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf("%d,%d,%d\n",a,b,c);A.0,0,5B.-10,5,-10C.5,0,5D.5,0,-105. 下面程序的输出是( D )main(){int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A.k=11,k=12,k=13B.k=11,k=13,k=13C.k=11,k=013,k=oXbD.k=11,k=13,k=b6. 执行以下一段代码后,变量a,b,c的值分别是(B )int x=10,y=9;int a,b,c;a=(--x==y++)?--x:++y;b=x++;c=y;A.a=9,b=9,c=9B.a=8,b=8,c=10C.a=9,b=10,c=9D.a=1,b=11,c=107. 对下面的程序说法正确的是( D )main(){int x=3,y=0,z=0;if(x=y+z)printf("****");elseprintf("####");}A.有语法错误,不能通过编译B.输出为****C.输出为####| | | | | | | |装| | | | |订| | | | | |线| | | | | | | | |D.可以编译,但不能通过链接,因而不能运行8. 执行以下语句后sum的值为( D )int i=10,sum=0;do{sum+=i;i++;}while(i<10)A.0B.1C.11D.109. 若给出以下定义:char x[]="abcdefg";char y[]={'a','b','c','d','e','f','g'};则正确的叙述为( )A.数组x和数组y等价B.数组x和数组y的长度相同C.数组x的长度大于数组y的长度D.数组y的长度大于数组x的长度10. 有以下程序main(){int AA[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0;i<4;i++)s=s+A[i][1];printf("%d\n",s);}程序运行后的输出结果是()A.11B.19C.13D.2011. 以下函数值的类型是( )fun ( float x ){ float y;y= 3*x-4;return y;}A.intB.不确定C.voidD.float12. 若有以下程序片段char str[]="ab\n\012\\\"";printf("%d\n",strlen(str));则执行printf语句的输出结果是()A.6B.12C.3D.413. 当n=-4时,以下代码段将会发生什么情况()int factorial(int n){if (n= =0)return 1;elsereturn factorial(n-1)* n;}A.递归函数返回0B.递归函数进入无限循环C.递归函数返回-4的阶乘D.以上三项皆错14. 设有以下宏定义:#define N 3#define Y(n) ((N+1)*n)执行语句z=2*(N+Y(5+1));后,z的值为()A.出错B.42C.48D.5415.程序中头文件type1.h的内容是:#define N 5#define M1 N*3程序如下:#include "type1.h"#define M2 N*2main(){int i;i=M1+M2; printf("%d\n",i);}程序编译后运行的输出结果是()A.10B.20C.25D.3016.下面程序的输出结果是( )main(){ int a[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}A.0B.1C.10D.9|||||||装|||||订||||||线|||||||||||17.若有以下说明和语句:struct worker{int no;char *name;}work,*p=&work;则以下引用方法不正确的是()A.work.noB.(*p).noC.p->noD.work->no18. 已知学生记录描述为:struct student{int no;char name[20];char sex;struct{int year;char month[15];int day;}birth;};struct student s;设变量s中的生日是1984年11月11日,下列对生日的正确赋值方式是( )A.s.birth.year = 1984; s.birth.month = "11"; s.birth.day = 11;B.s.birth.year = 1984; s.birth.month = 11; s.birth.day = 11;C.s.birth.year = 1984; strcpy(s.birth.month, "11"); s.birth.day = 11;D.s.birth.year = 1984; strcpy(s.birth.month, 11); s.birth.day = 11;19. 设有变量说明int A=3,B=6;char C;若执行赋值语句C=(A^B)则C的二进制值是()。
2010和2011年计算机c程序设计真题及答案

二O一O年硕士学位研究生招生入学考试试题考试科目:计算机程序设计代码:9271.填空题20题,每题1分1)程序的三种基本的控制结构是:顺序结构、选择结构、循环结构。
2)外部函数的储存类型是,它既可以在本编译单位中被调用,又可以在中被调用。
3)若a函数中调用了b函数,而b函数又调用了c函数,这种调用称为调用。
若a函数中调用了b函数,而b函数又调用了a函数,这种调用称为调用。
4)“*”称为指针运算符,“&”称为取值运算符。
5)表示结构体成员的“ . ”称为成员(分量)运算符,“ -> ”称为分量运算符。
6)如果调用fopen函数不成功,则函数返回值为0;如果调用fclose函数不成功,则函数返回值为EOF。
7)C++语言中有//和/*与*/ 二种注释方法。
8)在C++中用关键字 class来定义新的类。
9)若有以下定义,则不移动指针p,且通过指针p引用值98的数组元素的表达式是。
int w[10]={23,54,10,33,47,98,72,80,61,102}, *p=w;10)位运算:0x1a2c&0x1a79 的运算结果是(用八进位制形式写出)015050 。
2.程序填空题4题,每题5分1)下列程序的功能是计算1-10之间偶数之和,请填空。
#include <iostream.h>void main( ){ int a, b,i:a=0;b=0;for ( i=0;__i<=10_____;i+=2){ a+=i;(2) ;}cout<<“偶数之和为:”<<a<<endl;}2)下列程序是将一个正整数n的各个位向左循环移动4位,请在程序的横线上填写适当的内容。
#include <stdio.h>void main(void){ int k,n,a;scanf(“%d”,&n);k=n&0xf000;k= >>12 ;a=n<<4;a=k | a;printf(“n=%o\n a=%o\n”,n,a);}3)下面是字符串拷贝函数,请填空。
《C语言程序设计基础》期末考试试卷‘B’及答案

一、单项选择题(每小题2分,共30分)答案填入下表1. 在C语言中,下面字符串能用作变量名的是( )。
A、a+bB、autoC、2-andD、a22. 若double x=2,y;则执行y=x+3/2;后,y的值是( )。
A、3.500000 B. 3.000000 C. 2.000000 D. 33. 下列关于C语言中字符常量与字符串常量的叙述中,错误的是( )。
A、字符常量是用单撇号括起来的一个字符B、空格字符也可用作字符常量C、字符串常量是用单撇号括起来的一个字符序列D、字符串常量是用双撇号括起来的一个字符序列4. 若有以下变量说明和数据的输入方式,则正确的输入语句为( )。
变量说明:float x1,x2;数据的输入方式:4.52<回车>3.5<回车>A、scanf(“%f,%f”,&x1,&x2);B、scanf(“%f%f”,&x1,&x2);C、scanf(“%3.2f,%2.1f”,&x1,&x2);D、scanf(“%3.2f%2.1f”,&x1,&x2);5. 下列程序段的执行结果是( )。
char s[10];s=″abcd″;printf(″%s\n″,s);A、输出abcdB、输出aC、输出abcduuuuuD、编译不通过6. 在一个源文件中定义的全局变量的作用域为()。
A. 本文件的全部范围B. 从定义该变量开始至本文件结束C. 本函数的全部范围D. 本程序的全部范围7.当调用函数时,实参是一个数组名,则向函数传送的是( )。
A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值8.若j为整型变量,则下面while循环( )。
j=10;while(j!=0) j=j-1;A、执行0次B、执行1次C、执行10次D、执行无限次9. 在while(x)语句中的x与下面条件表达式等价的是:( )。
2010年下全国信息技术水平考试C语言考试试卷

2010年(下)全国信息技术水平考试计算机程序设计技术水平证书(C语言)考试试卷第一大题:单选题(30 分)1. C语言中,语句的结束符号是( )。
(A) ,(B) ;(C) 。
(D) :2. 下列程序的运行结果是( )。
#include <stdio.h>void main( ){int i=3;printf("%d, ",i++);printf("%d, ",i);printf("%d, ",++i);printf("%d\n",i);}(A) 3,4,5,5 (B) 3,3,4,4 (C) 4,3,3,3 (D) 4,4,3,43. 下列选项中不合法的常量是( )。
(A) ˊ\6ˊ(B) ˊ\286ˊ (C) " " (D) "\286"4. 设int x=1,y=1;则表达式(!x||- - y)的值是( )。
(A) -1 (B) 1 (C) 2 (D) 05. 设int x=11,则表达式(x + +*1/3)的值是( )。
(A) 4 (B) 11 (C) 3 (D) 126. 若a=2,b=3,c=4,则表达式 a= =3 和 a=3的值分别为( )。
(A) 0和3 (B) 1和3 (C) 3和3 (D) 0和07. 下列程序的运行结果是( )。
main(){char c1=ˊ6ˊ,c2=ˊ0ˊ;printf("%c,%c,%d\n",c1,c2,c1-c2);}(A) 因程序格式不合法,提示出错信息(B) 6,0,5 (C) 6,0,7 (D) 6,0,68. 下列选项中对于以下程序段描述正确的是( )。
int k=10;while(k!=0) k=k-1;(A) 循环体执行了10次(B) 循环体是无限循环(C) 循环体语句一次也不执行(D) 循环体语句执行了一次9. 下列选项中与while(!x)中的!x等价的条件是( )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C 语言试题 第1页(共6页)课程代码: 座位号:新疆大学2010—2011学年度第二学期期末考试《计算机技术基础 C 语言》试卷B (南区)姓名: 学号: 专业:学院: 班级:2011 年6 月第一部分 选择题(共30分)一、单项选择题(本大题共15小题,每题只有一个正确答案,答对一题得2分,共30分)1、关于C 语言程序说法不正确的是: 【 】 A. C 程序由函数构成,但只有一个main()函数。
B. C 程序中main()函数可以在程序的任何位置。
C. C 程序由main()函数开始执行,由main()结束执行。
D. 在C 程序中main()函数的位置必须在程序的第一行。
2、C 语言中的表示符只能由字母、数字和下划线三种字符组成,且第一个字符必须为: 【 】 A. 字母 B. 字母或下划线 C.字母、数字和下划线中任一种字符 D. 下划线3、字符型常量在内存中存放的是: 【 】A. ASCII 码B. BCD 码C. 内部码D. 十进制码 4、以下选项中合法的实型常数是: 【 】A. 5E2.0B. E-3C. .E3D. 1.3E35、若x,i,j和k都是int型变量,则执行语句i=10;j=7;k=32;x=i>j?j: k;后x的值为【】A. 4B. 16C. 32D. 76、 C语言中用于结构化程序设计的三种基本结构是:【】A.顺序结构、选择结构、循环结构 B.if、switch、breakC.for、while、do-while D.if、for、continue7、以下描述中不正确的是【】A. 语句for(i=0 ; ; i++)表示无限循环B. 语句for( ; ; )表示无限循环C. 语句for()也表示无限循环D. while(1) 表示无限循环8、在C语言中,二维数组元素在内存中的存放顺序是【】A. 由编译器决定B. 按行存放C. 由用户自定义D. 按列存放9、若有以下定义:char a; int b; float c; double d;则表达式a*b+d-c值的类型为【】A. floatB. intC. charD. double10、C语言中函数返回值的类型是由什么决定的?【】A. return语句中的表达式的类型决定B. 调用该函数的主调函数决定C. 调用函数时临时决定D. 定义函数时所指定的函数类型决定11、用数组名作为函数调用时的实参,则传递给形参的是【】A. 数组首元素的地址。
B. 数组第一个元素的值。
C. 数组中全部元素的值。
D. 数组元素的个数。
12、已知字母A的ASCII码为65 ,以下程序运行后的输出结果是【】void main( ){ int a, b;a='A'+'3'-'2'; b=a+'3'-'2' ;printf("%d %c\n", a, b); }A. 66 cB. 66 CC. 98 dD. 98 C13、有以下程序: void main(){ int x=3,y=0,z=0;if (x=y+z) printf("*****\n");else printf("#####\n"); }程序运行后的输出结果是【】A.不能通过编译 B.不能通过连接 C.输出##### D.输出*****14、有以下程序: void main(){ int *p,a=100,b=5;p=&a;a=*p+b;printf("%d\n",*p); }C语言试题第2页(共6页)C 语言试题 第3页(共6页)程序运行后的输出结果是: 【 】A. 100B. 5C. 105D. 2000000515、设有以下结构体和共用体,分别占用的内存空间字节是 【 】struct vc60{ float score; char name;}; union un1{ float f1; char h1;};A. 5 , 4B. 3 , 2C. 3 , 5D. 5 , 5第二部分 非选择题(共70分)二、判断题(本大题共 10小题,每题1分,共10 分,答A 表示说法正确;答B 表示说法不正确,本题只需指出正确与错误,不需要修改)16、组成一个C 语言程序的函数可以在不同的文件中。
【 】 17、使用全局变量过多,会降低程序的清晰性。
【 】 18、函数间可以互相调用,也可以调用main()函数。
【 】 19、switch 语句中必须使用break 语句。
【 】 20、通过关键字typedef 可以定义一个新的数据类型。
【 】 21、C 语言中宏的展开是在编译之前进行的。
【 】 22、数组可以在定义时整体赋初值,但不能在赋值语句中整体赋值。
【 】23、break 语句只结束本次循环,而不是终止整个循环的执行。
【 】24、对于不带回值的函数,应当用“void ”定义函数为空类型。
【 】25、指针变量是用来存放其他变量的地址。
【 】三、填空题(本大题共15空,每空1分,共15分)26、设:int x=65;printf(“%d,%c\n”,x,x);则输出结果为:。
27、函数的返回值是通过函数中的语句获得的。
28、C语言规定只能引用数组元素。
29、数组名作为函数调用的实参和形参,则传递的是。
30、用关键字union可以定义一个共用体类型,而用关键字可以定义一个结构体类型。
31、C语言提供了命令来实现“文件包含”操作,来实现宏定义。
32、一般情况下,函数由和两部分组成。
33、变量从作用域划分为全局与局部变量,而从存储类别划分可分为static,、register、。
34、C语言中不能嵌套函数,但可以嵌套函数。
35、putchar()函数可以向终端输出一个,而puts()函数可以向终输出一个。
四、写出程序运行结果36、下列程序的输出结果是:#include <stdio.h>void main(){ int a;double b=3.5;a=b+2.1;printf("a=%d\n",a);}37、下列程序的输出结果是:#include <stdio.h>void main(){ int x;switch(x=1){C语言试题第4页(共6页)case 1: switch(x=1){case 1: x=10; break;case 2: x=20; break;}}printf("x=%d\n",x);}38、下列程序的输出结果是:#include <stdio.h>void main(){int i,m,n,z;int num[10]={2,-1,3,0,4,7,-2,8,-6,10};m=n=z=0;for(i=0;i<10;i++){ if(num[i]>0) m++;else if(num[i]<0) n++;else z++;}printf("m=%d, n=%d, z=%d\n",m,n,z);}39、下列程序中如果键盘输入8.4和4.7,则程序的输出结果是:#include <stdio.h>max(float a, float b){ float c;c=a>b?a:b;return c;}void main(){float x,y;scanf("%f%f",&x,&y);printf("max=%d\n",max(x,y));}40、下列程序的输出结果是:#include <stdio.h>C语言试题第5页(共6页)C 语言试题 第6页(共6页)void main() {int x=10; while(x>=0)printf(“x=%d ”,x-- ); }五、程序填空(本大题共有1个题,共有5个空,每空为2分,共10分)41、对输入的两个整数按大小顺序输出。
#include <stdio.h>void main(){void swap(int *p1,int *p2);int a,b;int*pointer_1,*pointer_2; scanf("%d,%d",&a,&b);pointer_1=&a;pointer_2=&b;if(a<b) swap( , ); printf("\n%d,%d\n",a,b); }void swap(int *p1,int *p2) {int temp;temp= ; *p1= ;=temp;}六、编写程序(本大题共2小题,第一题4分,第二题6分,共10分)42、设圆的半径r=3,求圆球表面积和体积。
用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后2为数字。
(4分)43、 有一个一维数组score ,内放10个学生成绩,求平均成绩(用函数来实现) 。
(6分)。