《c语言程序设计基础的考试题.doc》由会员分享,可在线阅读,更多相关《c语言程序设计基础的考试题.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序设计基础(考试题)读程序,写出程序的执行结果1若a是int型变量,且a=5,则下面表达式的值为:_3_。(a+100)%2+a/22. C语言程序中引用标准输入输出库函数,必须在每个源文件的首部写下#include 。3若int型变量占内存2个字节,double型变量占内存8个字节,有如下定义:union data int i; double d;a;则变量a在内存中所占字节数为_8_。4C语言中用于结构化程序设计的三种基本结构是(A ) A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue5以下
2、选项中合法的用户标识符是( B)A)long B)_2Test C)3Dmax D)A.dat6以下非法的赋值语句是(C )A) n=(i=2,+i) B) j+; C) +(i+1) D) x=j07.C语言中,基本数据类型包括整型、浮点型和_字符型_。8.一个C程序是由_函数_组成的。9.在abc、a_1、a1b2、auto四个变量中,不合法的是_auto_。10.字符串abcn101的占用内存的字节数为_6_。11.在运算符+、-、*=、&中,其优先级最低的是_*=_。12.定义共用体类型使用关键字_union_。13.C语言中,break语句通常用在_switch_语句和循环语句中。1
3、4.表达式7*2/5+3.5+b值的类型是_double的实数型_。15.设有语句int a=5;执行语句printf(%d,+a);后,输出结果为_6_。16.执行下面程序段后,输出的结果为_*_。 for(i=1;i0)s=a; for(b=1;bb的关系运算结果是_0_。42.若有定义a10;则允许数组a的下标最小可以是_0_。43若x为int型变量,则逗号表达式(x=4*5,x*5),x+25的结果是(B)A)20 B)45C)100D)表达式不合法44在Visual c+ 中,若对函数类型未加显式说明,则函数的隐含类型是(C )A)void B)double C)int D)char
4、45对于int a=1,2,3,4,5,6,p; p=a; *(p+3)+=2;则*p,*(p+3)的值是(D ) A)1 5 B)1 3 C)1 4 D)1 646. 若有语句int i=19, j=i%4;printf(%d, j);则输出结果是(B )A)3 B)-3 C)4.75 D)047. 设有定义 int a =1,5,7,9,11,13, *p=a+3; 则*(p-2) , *(a+4) 的值是(A)A)5 11 B)1 9 C)5 9 D)有错误48C语言程序的基本单位是( C ) A. 程序行 B. 语句 C. 函数 D. 字符49可用作C语言用户标识符的一组字符串是( B
5、 ) A. void define WORD B.a3_b3 _123 IF C. For abc Case D.2a DO sizeof50设int a=12,则执行完语句a+=a-=a*a;后a的值是( D ) A. 552 B. 264 C. 144 D. 26451以下叙述正确的是( D ) A.do-while语句构成的循环不能用其它语句构成的循环来代替。 B.do-while语句构成的循环只能用break语句退出。 C.用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D. 用do-while语句构成的循环,在while后的表达式为零时结束循环。52设有说
6、明int (*ptr)10 其中的标识符ptr是( D ) A. 10个指向整型变量的指针 B. 指向10个整型变量的函数指针 C. 一个指向具有10个整型元素的一维数组的指针 D.具有10个指针元素的一维指针数组,每个元素都只能指向整型量53有以下程序段 typedef struct NODE int num; struct NODE *next; OLD; 则以下叙述中正确的是( C ) A.以上的说明形式非法 B. NODE是一个结构体类型C.OLD是一个结构体类型 D.OLD是一个结构体变量54以下不能正确计算代数式值的C语言表达式是( A ) A.1/3*sin(1/2)*sin(1
7、/2) B.sin(0.5)*sin(0.5)/3 C.pow(sin(0.5),2)/3 D.1/3.0*pow(sin(1.0/2),2)55C语言规定,程序中各函数之间( A ) A.既允许直接递归调用也允许间接递归调用 B.不允许直接递归调用也不允许间接递归调用C.允许直接递归调用不允许间接递归调用D.不允许直接递归调用允许间接递归调用56在宏定义define PI 3.14159中,用宏名PI代替一个( D ) A.单精度数 B.双精度数 C.常量 D.字符串57在C语言中,要求运算数必须是整型的运算符是(A ) A. B. / C. =y)&(y=z) B.(x=y) AND (y
8、=z) C.(x=y=z) D.(x=y)&(y=z)59有以下程序段 int k=0,a=3,b=4,c=5; k=ac?c:k; 执行该程序段后,k的值是( D )A.3 B.2 C.1 D.060若有定义char *s=”NameAddressn”,则指针s所指字符串长度为( D ) A.19 B.15 C.18 D.说明不合法 解析应该输出”NameAddress所以合法的是char *s=”NameAddressn”这样就是15个字符61下述对C语言字符数组的描述中错误的是(C ) A.字符数组可以存放字符串 B.字符数组中的字符串可以整体输入输出 C.可以在赋值语句中通过赋值运算符
9、对字符数组整体赋值 D.不可以用关系运算符对字符数组中的字符串进行比较62设有如下的函数 exam(float x)printf(“n%f”,x*x); 则函数的类型为( C ) A.与参数x的类型相同 B.是void C.是int D.无法确定63有定义语句:int x, y;,若要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是(A )A)11 12 B)11, 12C)11,12 D)11,1264下列选项中正确的语句组是(D )A)char s8; s=Beijing; B)char *s; s=Beijing;C)c
10、har s8; s=Beijing; D)char *s; s=Beijing;65main() int i; for (i=0; i3; i+) switch (i) case 1: printf(%d , i); case 2: printf(%d , i); default : printf(%d , i); 程序执行后输出结果是(A ) A)011122 B)012 C)012020 D)12066printf函数中用到格式符%5s ,如果字符串长度大于5,则输出按方式(B)A)从左起输出该字串,右补空格B) 按原字符长从左向右全部输出C) 右对齐输出该字串,左补空格D) 输出错误信息
11、读程序,写出程序的执行结果1下面程序的运行结果是_835_。#include main() int i=2,j=3,k; k=i+j; int k=8; if(i=3) printf(“%d”,k); (这输出8) else printf(“%d”,j); printf(“%d%d”,i,k); (这输出3,5)2.下面程序的运行结果是_ ABCDEFG _。#include define SIZE 8 ( 0ABCDEFGH_这是S1到S8的值)main() char s=“GDBFHACE”; int i,j,t; for(i=0;iSIZE;i+) for(j=i+1;jsj) 解析(如
12、果大于就交换) t=si; si=sj; sj=t; for(i=0;iSIZE;i+) printf(“%c”,si); 3. 下面程序的运行结果是_a=2,b=3,c=15_。#include int fun(int a,int b,int *cn,int *dn) 解析这里的ab是形参 *cn=a*b+b*b; 解 (*cn=15)*dn=a*a-b*b; 解 (*dn=-5)a=5;b=6; main() int a=2,b=3,c=5,d=6; 解析ab是主参数不改变 fun(a,b,&c,&d); printf(“a=%d,b=%d,c=%dn”,a,b,c,d);4. 下面程序的
13、运行结果是_6,10_。#include int fun(int x) static y=2;y+;x+=y;return x; main() int k; k=fun(3); printf(“%d,%dn”,k,fun(k);5. 下面程序的运行结果是_15_。#include main() int s=0,m; for(m=7;m=3;m-) switch(m); 解析 要一直循环5次 case 1:case 4:case 7:s+;break; case 2:case 3:case 6:s+=2;case 0:case 5:s+=3;break; printf(“s=%d n”,s);6
14、运行结果(3)main() int p=30; printf(%d,(p/30 ? p/10 : p%3); 7 运行 结果7,8,7int *f(int *x, int *y) if (*x *y) return x; else return y; main( ) int a=7,b=8,*p,*q, *r; p=&a; q=&b; r = f(p,q); printf(%d,%d,%d,*p,*q,*r); 8运行结果1 3 2 main() int i,m=0,n=0,k=0; for(i=9; iy ? x : y; 解析 返回最大值 int f2(int x, int y) 返回最小
15、值 return xy ? y : x; main( ) int a=4,b=3,c=5,d, e, f; d = f1(a,b); d=f1(d,c); e = f2(a,b); e=f2(e,c); f = a+b+c-d-e; printf(%d,%d,%d,d,f,e); 12若有程序 main() int i,j; scanf(i=%d,j=%d, &i,&j); printf(i=%d,j=%d,i,j); 要求给i赋10,给j赋20,则应该如何从键盘输入? 答案 i=10,j=2013写出以下程序运行后的输出结果 (b)。main() char m;m=B+32; printf(
16、%c,m);14.写出以下程序运行后的输出结果 (58 )。 main()int a44=1,2,-3,-4,0,-12,-13,14,-21,23,0,-24,-31,32,-33,0; int i, j, s=0; for (i=0; i4; i+) for (j=0; j4; j+) if (aij 0) continue; if (aij = 0) break; s += aij; printf(%d, s); 解析碰到0不扫描,正的就加到s上编程题1.编写一个将百分成绩转换为等级分的函数,输入学生的成绩,转换的得到该生成绩的等级。转换标准为:90-100分对应A级; 80-89分对应
17、 B级; 60-79分对应 C级; 60分以下对应D级。2.编写完整的程序。输入三个数,输出其中的最大数,最小数。3.编写完整的程序。利用循环语句实现求1到100的和以及积。4.编写完整的程序。输出菲波拉契数列的前二十项。(f1=1,f2=1,f3=f1+f2=2,f4=f2+f3=3) 提示:可以采用数组,亦可以不采用。5.任意输入aNN个数,找出并输出其中的最大数和最小数,以及它们的下标。(例如N3,要求编写一个完整的程序实现其功能)6.用选择法对10个整数进行升序排列,要求在主函数中调用排序函数,然后在主函数中输出。7.从键盘上任意输入一个字符串STR1,输出其中的数字字符。例如输入为:sd12we$*55abc,则输出结果为:1255。8.编写一个完整的程序实现下面功能:对于数组a55任意输入5*5个数,找出并输出其中的最大数和最小数。9.求3*3矩阵的所有元素之和。要求定义一个求和函数sumArray(),在main函数中调用。 矩阵如下: 12 9 3 6 1 30 21 9 15 10.用冒泡法对10个整数进行升序排列。P247 3. 7.6
限制150内