高级语言程序设计题型样卷
- 格式:doc
- 大小:42.50 KB
- 文档页数:4
武汉大学2009-2010学年度第2学期《高级语言程序设计(C语言)》学位考试模拟试卷B卷答案姓名:学号:专业:一.单项选择题:(选择最合适的答案填空,每小题2分,共16分)(D)1、设有变量定义:int m=5,n=3;则执行表达式((m+=2)>=7)||((n-=3)<10)后,m,n的值分别为_____ _。
A.5和0B.5和3C.7和0D.7和3(D)2、已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是。
A.w+=-2B. k=(a=2,b=3,a+b)C. a+=a-=(b=4)*(a=3)D. x%(-3) (B)3、下面程序段的运行结果是。
#include <stdio.h>int main ( ){ int a=11,b=10,c=0;a/=b+(b&&c);printf(“%d\n”, a);return 0;}A.0B.1C. 1.1D. 11(C)4、头文件type1.h的内容如下所示:#define N 5#define M1 N*3程序如下:#include “type1.h”#define M2 N*2int main(){ int i;i=M1+M2;printf(“%d\n”,i);return 0;}则上述程序编译后运行的输出结果是:A.10B.20C. 25D. 30(A)5、设有如下定义:struck sk{ int a;float b;}data;int *p;若要使P指向data中的a域,正确的赋值语句是:A.p=&data.a;B. p=data.a;C. p=&a;D. *p=data.a (C)6、设有如下定义int a[ ]={10,11,12},*p=&a[0];则执行完*p++; *p+=1;后a[0],a[1],a[2]的值依次是。
c高级程序设计试题及答案一、选择题(每题2分,共20分)1. 在C语言中,下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个函数用于将字符串s复制到字符串t中?A. strcat(s, t)B. strcpy(s, t)C. strcmp(s, t)D. strncat(s, t)答案:B3. 在C语言中,下列哪个运算符用于执行逻辑与操作?A. &&B. ||C. !D. ~答案:A4. 下列哪个选项是正确的C语言注释?A. // This is a single line commentB. /* This is a single line comment */C. // This is a multi-line commentD. /* This is a multi-line comment */答案:A5. 在C语言中,下列哪个函数用于打开一个文件?A. fopenB. fcloseC. freopenD. remove答案:A6. 下列哪个选项是C语言中的合法整型常量?A. 123B. 0x1AC. 1.23D. 0123答案:A7. 下列哪个关键字用于定义一个函数?A. intB. voidC. returnD. struct答案:A8. 在C语言中,下列哪个运算符用于执行算术右移操作?A. <<B. >>C. <=D. >=答案:B9. 下列哪个函数用于将整数n转换为字符串并存储在s指向的数组中?A. sprintf(s, "%d", n)B. scanf(s, "%d", &n)C. printf("%d", n)D. scanf("%d", &n)答案:A10. 在C语言中,下列哪个选项是正确的多行字符串字面量?A. "Hello, world"B. "Hello,\nworld"C. "Hello, " "world"D. "Hello, " 'world'答案:B二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个指针。
《高级语言程序设计》测试题(一)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.以下正确的C 语言自定义标识符是 ( ) A ._la B .2a_ C .do D .a.12 2.在C 语言中,错误..的常数表示是 ( ) A .0L B .-0x6aL C .'6' D .1.234E3.53.设int a,x=2;执行语句a=x>0? 3*x:(x=10);后,变量x 的值是 ( ) A .1 B .2 C .6 D .10 4.设有以下程序段:int x=2,y=2,z=0,a; a=++x||++y&&z++;printf("%d,%d,%d\n",x,y,z);执行后输出的结果是 ( ) A .2,2,0 B .3,3,1 C .3,2,0 D .3,2,15.在C 语言中,字符串"\\TOP\t\65\""的长度是 ( ) A .5 B .7 C .9 D .126.设float x;,由键盘输入:12.45,能正确读入数据的输入语句是 ( ) A .scanf("%5f",&x); B .scanf("%5d",&x); C .scanf("%f",x); D .scanf("%s",&x)7.逗号表达式a=2*6,a*3,a+5的值是 ( ) A .12 B .17 C .36 D .418.C 语言表达式3.26*exp(x)+(a+b)/3所表示的数学表达式是 ( )A .3.26x+)b a (31+B .3.26x e +3ba + C .3.26e x +)b a (31+D .3.26lnx+3ba +9.在C 语言中,下列运算符中结合性属于自右向左的是 ( ) A .&& B .-- C .<< D .->10.设int (*P)( );,p 的含义是 ( ) A .指向一维数组的指针变量 B .指向二维数组的指针变量 C .指向一个整型变量的指针变量 D .指向整型函数的指针变量11.设char x[][10]={"Windows","dos","unix"};,执行printf("%c",x[1][2]);后输出的结果 ( ) A .n B .i C .o D .s12.结构型变量占用内存的字节数是 ( ) A .各成员占用内存字节数之和 B .第一个成员占用的内存字节数 C .占用内存最大成员所需的字节数 D .最后一个成员占用的内存字节数 13.设int a=11,b=2;,执行下述程序段后,变量a 和b 的值分别是 ( )do{ a/=b++; }while(a>b);A .1,3B .1,4C .2,3D .2,4 14.在C 语言中,下列错误..的说法是 ( ) A .函数可以递归调用 B .不允许在函数中再定义函数C .递归程序不可能用非递归算法实现D .对于continue 语句,可以通过改变程序的结构而不使用它15.设int a[2][3]={{1},{2,3}};,则元素a[1][0]的值是 ( ) A .0 B .1 C .2 D .316.若main()带参数,正确的是 ( ) A .main(int argc,char *argv) B .main(int argc,char *argv[]) C .main(int argc,char argv[][]) D .main(int argc,char argv[]) 17.设struct student{ char name[10];int sex; int num; }s,*p=&s;以下对结构型变量s 中成员num 的非法引用是 ( ) A .p->num B .(*p).num C .s.num D .student.num18.下列说法中正确的是 ( ) A .C 语言的预处理命令只有宏定义和文件包含 B .预处理命令只能出现在主函数之前 C .所有预处理命令都是以符号″#″开头D .有些预处理命令不是在源程序编译之前处理19.设enum week {mon,tue=2,wed,thu,sat=6}day;,则枚举常量mon 和thu 的值分别是( ) A .0和4 B .1和4 C .0和3 D .1和520.下列属于文件包含的命令是 ( ) A .#define N 25 B .#endif C .#include "stdio.h" D .#else二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
高级语言程序设计期终考试试卷及答案(C)一、填空题(每空1分,共15分)1. 字符常量是用单引号括起来的字符序列2. 结构化程序的3种基本结构是顺序结构,循环结构,选择结构3. C程序的语句是以;作为语句的结束符4. int a; 则a能表示的数据的范围是-32768——327675. float a=8.3; int b=3; 表达式a+b/2的值是9.36. 流程图及N—S图都是一种程序框图的工具7. char c= 'A' ; 要想输出c的ASCII码,输出控制是printf("%d", c );8. 要定义一个能容纳10字符的字符串的一维数组a,定义格式是a[11]9. 定义一个带参的宏AREA,求圆的面积,定义是float AREA(float r)10.int a[4][5]; 则排列在数组中的第9个元素是a[1][3]11. struct s {int a; float b;}; 则sizeof(struct s)的值是612.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为 auto13.要计算0.5sin(x)+cos(x)的值,需要的头文件是math.h14.将一文件以二进制打开进行只读操作,格式是fp=fopen("a.dat", " rb");15. enum day {Mon,Tue,Wed,Thu,Fri,Sta,Sun}; 则Tue的实际值是 1二、选择题(每小题2分,共24分)1. 有以下程序, 执行后输出结果是(C)main( ){int x=102,y=012;printf(“%2d,%2d\n”,x,y);}A) 10,01 B) 02,12 C) 102,10 D) 02,102. 以下叙述正确的是( C )A) 在C程序中,main函数必须位于程序的最前面B) C程序的每行中只能写一条语句C) C语言本身没有输入输出语句D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误3. 若有说明语句: char c = '\86'; 则变量c ( A )A) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法4. 在C语言程序中正确的描述是( B )A) 函数的定义可以嵌套,但函数的调用不可以嵌套B) 函数的定义不可以嵌套,但函数的调用可以嵌套C ) 函数的定义和函数的调用均不可以嵌套D) 函数的定义和函数的调用均可以嵌套5. 以下程序段中,不能正确赋字符串的是(C )A) char s[10] = "computer"; B) char t[]="computer", *s=t;C) char s[10]; s="computer"; D) char s[10]; strcpy(s, "computer");6. 执行printf("%x",100);后的输出结果是(D)。
高级语言程序设计试卷A一、选择题(每题2分,共16分)1.若a = TRUE , b = FALSE , x = 10 , i = 1 , j = -1 ,则表达式a AND NOT (x>0) AND (i>j+3) OR a>b AND b 的值为A.0B.1C.TRUED.FALSE2.下面的程序执行后,x的值是a:= 9;b:= 0;IF ( a<=a+b ) AND (a>b) THENIF a>6 THENIF a>10 THEN x:=0.5 ELSE x:=1.5ELSE IF a>2 THEN x:= 10 ELSE x:= 20;A..0.5B.1.5C.10D.203.执行下面的程序段后,结果是a:= 2;b:= 0;REPEATWRITE (‘AAA’);b:= b + 1UNTIL ( a > b );A.打印一个AAAB.打印2个AAAC.打印无数个AAAD.什么也不打印4.下述程序段将打印出s:= 0;c:= 0;FOR c:= 2 TO 7 DOCASE C OF4 , 7 , 1:S:= S + 1;2 , 6 , 3:;0 , 10 , 5:S:= S + 3END;WRITELN (‘S =’ , S);A.S = 4B.S =5C.’S’ =4D.’S’ =55.下列常量说明中,合法的是A. CONST color = red . . blue ;B. CONST const = 10*5 ;C. CONST x 1 : = 3.9 ;D. CONST abc = ‘abc’ ;6.下列类型的变量中,不能用Write语句直接输出的变量是A. 布尔型变量B. 枚举型变量C. 整型变量D. 字符型变量7.设有一单向链表,指针p,q分别指向链表中的结点,q↑是p↑的前驱结点,现要把指针p0指向的结点插在q↑和p↑之间,应用语句A.p0↑.next:=q↑.next; q↑.next:=p0;B.p0:=p; q↑.next:=p0;C.p0↑.next:=p↑.next; q↑.next:=p0;D.p0↑.next:=p; q↑.next:=p0;8.以下程序段共执行循环体的次数是i : = 2.5 ;WHILE i <= 4 DOBEGINi = i + 0.5 ;Write ( i ) ;END;A. 1B. 2C. 3D. 4二、填空题(每空3分,共54分)1.请填充下面程序段,并计算l一50之间不能被3整除同时也不能被5整除的所有整数之积。
高级语言程序设计试卷4姓名: 班级: 学号序号 一 二 三 四 五 总分得分一、 选择题(每小题2分,共40分)1、c语言的函数主体必须用以下( )符号括起来A、( ) B、“ ”C、{ } D、/* */2、若有以下类型说明语句:char a; int b; float c; double d; 则表达式a/b+d-c的结果类型为 ( )A)float B)char C)int D)double3、判断char型变量c1是否为大写字母的正确表达式( )A、 ’A’<=c1<=’Z’B、 (c1>=’A’)&(c1<=’Z’)C、 (c1>=’A’)&&(c1<=’Z’)D、 (‘a<=c1’)AND(‘Z’>=c1)4、下面哪个表达式的值为4( )A、11/3 B、11.0/3 C、(float)11/3 D、(int)(11.0/3+0.5) 5、在C语言中逻辑“真”等价于以下( )A、不等于0的数 B、大于0的数 C、小于0的数 D、整数16、指出下面不合法的标志符( )A、3ab B、ABC C、a_3 D、_stu2 7、该源程序执行后,假如输入2,5,屏幕上显示什么( )void main(){ int a,b,sum;scanf("%d,%d",&a,&b);sum=a+b;printf("sum=%3d\n",sum);} A、sum=%d\n B、7 C、sum= 7 D、sum=218、c语言在上机调试时,编译源程序和执行程序时应按下面哪些键( )A、F6、F9B、F8、Alt+F9C、Ctrl+F6,F9D、F9,Ctrl+F99、在调用一个函数的过程中直接或间接地调用函数本身,这就构成了函数的__ 。
A. 迭代调用B. 递归调用C. 地址传递D. 任意调用10、getchar 函数可以从键盘输入一个( )A)整型变量值 B)实型变量值 C)字符串 D)字符或字符型变量值11、下列程序的运行结果为( )main(){ int a,b,c;a=7;b=8;c=9;if(a>7)a=b,b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c);}A、a=7 b=8 c=7B、a=7 b=9 c=7C、a=8 b=9 c=7D、a=8 b=9 c=812、下列程序执行后输出的结果为( )#include<stdil.h>abc(){ static int x=0; ++x; printf("%d",x);}main(){ abc(); abc();abc();}A、000 B、111 C、1,2,3 D、12313、下列程序的输出结果为( )main(){ int a[5]={2,4,5,6,10},*p;p=a; printf("%d",*(P++)); printf("%d",*p); }A、44B、22 C、24 D、4 214、这段程序运行的结果是main(){ printf("\\C Program\\\n");}A. C ProgramB.C Program\nC. \C Program\D. "\\C program\\"15、以下程序的输出结果为( )#include<stdio.h>main(){ int a=010,b=10; printf(“%d,%d\n”,a++,--b); }A、10,10B、8,10C、10,9D、8,916、若a为整型变量,且有以下语句 ( )a=-017L; printf("%d\n",a);则下面哪个说法是正确的?A. 赋值不合法B. 输出值为-17C. 输出为不确定值D. 输出值为-1517、C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是A)float型 B) int 型 C) long型 D) double型18、已知学生记录描述如下,下面对结构体成员”computer”的赋值方式正确的是( )struct student{ int num; char name[8];struct{folat math;folat engl;float computer;}mark ;} std ;A)student . computer=84 B) mark . computer=84C) std . mark . computer=84 D) std . computer=8419、当定义一联合体变量时系统分配给它的内存是( )A、结构中每一个成员所需的内存量B、结构中最后一个成员所需的内存量C、结构体成员中占内存量最大者所需的容量D、结构体中各成员所需内存量的总和20、已知有以下的说明int a[]={8,1,2,5,0,4,7,6,3,9}; 那么a[*(a+a[3])]的值为( )A、2B、1C、8D、0二、填空题(每小题2分,共20分)1、若已知a=10,b=15,c=0,则表达式a*b||c的运算结果为_________。
《高级语言程序设计(C语言)》A试卷和参考答案一、选择题(每题2分,25题,共50分)下列各题A、B、C、D四个答案中,只有一个选项是正确的,请将每题的正确答案写在答题纸对应序号的横线上,答在试卷上不能得分1、对于C语言的函数,下列叙述中正确的是(1)A、函数的定义不能嵌套,但函数调用可以嵌套B、函数的定义和调用都有不能嵌套C、函数的定义和调用都能嵌套D、函数的定义能嵌套,但函数调用不能嵌套2、以下程序的输出结果是( 2 )。
main(){int x=1,a=2, b=3;switch(x){ case 0: b=b+a;break;case 1: a=b+a;case 2: ++a;++b;}printf("a=%d,b=%d\n",a,b);}A、a=6,b=4B、a=5,b=3C、a=6,b=3D、a=5,b=43、以下程序的输出结果是( 3 )。
main(){int a=1,c;c=7/2||++a;printf("%d,%d ",a,c);}A、1,1B、0,1C、1,3D、2,34、若:char s[30][30];则数组元素的非法引用是(4)。
A、s[20][9]B、s[29+1][2*3]C、s[3][29]D、s[9][30-1]5、有以下定义语句:int a[10]={3, 9, 11, 14, 20, 32, 60}, *p;p=a;则++(*++p) 的值是(5)A、9B、11C、22D、106、下列可以正确表示字符型常数的是( 6 )A、"a"B、"\010"C、'\n'D、h7、若定义语句float bb[100],则该数组array元素的上、下限为( 7 ) 。
A、0,99B、99,0C、100,1D、0,1008、下列各组字符序列中,可用作C语言程序标识符的是(8)。
A、SBSDB、_1$234C、spr#itD、4_cf_1在9、已知:char ch='t';则下列表达式的值是( 9 )ch = (ch>='a'&&ch<='z') ? (ch-32) : ch;A、TB、AC、ZD、t10、以下程序段的输出结果是( 10 ) 。
全国2018年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的值是( )1A.6B.7C.8D.99.下列为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]的地址2C.元素a[1]的值D.元素a[1]的地址15.设int a[10];,对数组元素引用正确的是( )A.a[10]B.a[′0′]C.a(6)D.a[10-10]二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
1.1 单项选择题1.二进制语言是属于()①面向机器语言②面向问题语言③面向过程语言④面向汇编语言【解】人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言。
面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言。
面向过程语言是一种能方便描述算法过程的计算机程序设计语言。
有汇编语言,但没有面向汇编语言。
汇编语言也是一种面向机器的语言,与机器语言比较,汇编语言用有助于记忆的符号来代表二进制代码。
所以解答是①。
2.下列语言中不属于面向过程的语言是()①高级语言②低级语言③C语言④PASCAL语言【解】C语言和PASCAL等程序设计语言都是高级语言,它们用于描述复杂加工的处理过程,所以也称它们是面向过程语言。
低级语言是指机器语言和汇编语言,低级语言是面向机器的语言,而不是面向问题的语言。
所以解答是②。
3.下列字符中属于键盘符号的是()①②n ③t ④b【解】键盘符号是指键盘上有标记,并能在显示器上直接以其标记字样显示的字符。
有许多键盘上有标记的符号,它们不是用于直接显示的,键入这种字符用于表示特定的意义,如常用的回车符。
为了能让C程序标记这种符号,程序采用转义字符的方式书写这种字符。
如"n"、"t" 、"b"都不是键盘字符,在C语言中,它们都得用转义字符来表达。
只有字符才是键盘字符。
所以解答是①。
但在C程序中,反斜杠字符已特别用作转义字符的引导符,它也得用转义字符的表达形式书写,将它写成""。
4.下列字符列中,不是用来表达转义字符是()①②" ③074 ④【解】转义字符有三种书写形式:反斜社字符后接上某个规定的字符;反斜杠字符后接上13个八进制数字符;反斜社字符和字符X之后接上1至2个十六进制数字符。
后两种分别八进制数和十六进制数直接给出字符的ASCll代码值。
高级语言及程序设计试卷与答案高级语言程序设计一、选择题:(共20题,每题1.5分,共30分)1. 下列四个选项中,均是合法的整型常量的选项是()A.160 –0XFFFF 011 B. -0XCDF 01A 0XE C. -01 986,012 0688 D. -0X48a 2e5 0x 2. 下列四个选项中,均是不合法的浮点数的选项是()A.160.0.12 e3 B. 123 2e4.2 .e5C.18 0.0 123e4 D. e3. 234 1e3 3. 合法的C语言字符常数是()A.'\t' B. "A"C.54 D. A4. 在C语言中,要求运算数一定是整型的运算符是()A./ B. ++C.!= D. %5. 字符串常量”mine”的字符个数是()A.4 B. 5C.6 D. 76. 以下属于非法的C语言转义字符的是()A.'\b' B. '0xf'C.'\037' D. '\'7. 若x、y、z均为int型变量,则执行以下语句后的输出是()x=(y=(z=10)+5)-5;printf("x=%d, y=%d, z=%d\n",x,y,z);y=(z=x=0,x+10);printf("x=%d, y=%d, z=%d\n",x,y,z);A. x=10, y=15, z=10B.x=10, y=10, z=10x=0, y=10, z=0x=0, y=10, z=0C.x=10, y=15, z=10D. x=10, y=10, z=10x=10, y=10, z=0 x=10, y=10, z=08. 在以下一组运算符中,优先级最高的运算符是()A.<= B. =C.% D. &&9. 已知:int x; float y; 所用的scanf调用语句格式为:scanf( “x=%d, y=%f”, &x, &y );为了将数据10和66.6分别赋给x和y,正确的输入应当是()A.x=10, y=66.6<回车> B. 10, 66.6<回车>C.10<回车>66.6<回车> D. x=10<回车>y=66.6 <回车>10. 已有如下定义的输入语句,若要求A1,A2,C1,C2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是()(注:□表示空格,表示回车)int a1, a2,;char c1, c2;scanf( “%d%c%d%c”, &a1, &c1, &a2, &c2 );A.10□A□20B B. 10□A□20□BC.10A20B D. 10A20□B11. 能正确表达:“当x取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()A.(x>=1) && (x<=10) && (x>=200) && (x<=210)B. (x>=1) || (x<=10) || (x>=200) || (x<=210)C.(x>=1)&&(x<=10) || (x>=200)&&(x<=210)D. (x>=1) || (x<=10)&&(x>=200) || (x<=210)12. 假定所有变量均已正确说明,下列程序段运行后x的值是()a=b=c=0; x=35;if(!a) x--;else if (b);if(c) x=3;else x=4;A.34 B. 4C.35 D. 3。
《高级语言程序设计》笔试样题
一、选择题(每小题2分,共20分)
1.设float c ,f ;将数学表达式C=
9
5(F-32)正确表示成C 语言赋值表达式的是( ) A .c=5*(f-32)/9 B .c=5/9(f-32) C .c=5/9*(f-32) D .c=5/(9*(f-32))
2.C 语言中,下列运算符优先级最高的是( )
A .%
B .!
C .>>
D .==
3.设有以下程序段:
int a=1, b=10, c=1, x;
x=a&&b||++c;
printf (″%d, %d \n″,x,c );
执行后输出的结果是( )
A .0,0
B .0,1
C .1,0
D .1,1
4.有以下程序
main ()
{ int m,n,p;
scanf (“m=%dn=%dp=%d”,&m,&n,&p );
printf (“%d%d%d \n ”,m,n,p ) ;
}
若想从键盘上输入数据,使变量m 中的值为123,n 中的值为456,p 中的值为789,则正确的输入是( )。
A .m=123n=456p=789
B .m=123 n=456 p=789
C .m=123,n=456,p=789
D .123 456 789
5.设char x[ ]=”12345” ,y[ ]={…1‟,‟2‟,‟3‟,‟4‟,‟5‟,‟\0‟};那么( )
A .x 数组的长度少于y 数组的长度
B .x 数组的长度大于y 数组的长度
C .x 数组的长度等于y 数组的长度
D .x 数组与y 数组的起始地址相同
6.设int i,x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句
for (i=0;i<3;i++)
printf (″%d″,x[i][2-i]);
的输出结果是( )
A .147
B .159
C .357
D .369
7.设int a=9,b=20;则printf (″%d,%d \n″,a --,--b );的输出结果是( )
A .10,20
B .9,20
C .10,19
D .9,19
8.下列表达式的值为0的是( )
A .3%5
B .3/5.0
C .3/5
D .3<5
9.设:struct st
{ int a;
float b;
}s, *p=&s;
则正确的引用是( )
A .(*).s.a
B .(*p ).a
C .p->s.a
D .p.s.a 10.设int x[]={1,2,3,4,5},*p=x ;,则值为3的表达式是( )
A .p+=2, *p++
B .p+=2, *++p
C .p+=2, p++
D .p+=2, ++*p
二、填空题(每小题2分,共16分)
1.一个C 程序一般由若干个函数构成,其中至少应包含一个 函数。
2.结构化程序设计规定的三种基本结构是顺序结构、选择结构和 。
3.写出能表达数学关系式“1010≤≤-x ”的C 语言表达式 。
4.设int i = 5;则循环语句while (i>=1) i--; 执行后,i 的值为_________。
5.设有以下变量定义,并已赋确定的值
char w; int x; float y; double z;
则表达式:w*x+z-y 所求得的数据类型为__________。
6.设char ch=‟A‟;则printf (“%c”,(ch>=‟A‟ && ch<=‟Z‟)?ch+32:ch );输出的值是___。
7.字符串″ABCD \t\\\123″的长度是 。
8.以下函数用来求出两整数之和,并通过形参将结果传回,请填空。
void func (int x ,int y , _ )
{ *z=x+y ; }
三、程序分析与程序填空题(本大题共6小题,每小题6分,共36分)
1. 说明该程序的功能,并写出其输出结果。
#include <stdio.h>
main ()
{ char a[20];
int n=127,i=0;
while (n )
{ a[i++]=n%8+'0';
n=n/8;
}
i--;
while (i>=0)
putchar (a[i--]);
}
2.写出下列程序的输出结果。
int a1=300,a2=400;
sub1(int x,int y )
{ a1=x; x=y; y=a1; }
main ( )
{ int a3=100,a4=200;
sub1(a3,a4);
sub1(a1,a2);
printf ("a1=%d\na2=%d\n",a1,a2);
printf ("a3=%d\na4=%d\n",a3,a4);
}
3.写出下面程序的输出结果。
#define PRN for (i=0;i<10;i++) printf ("%4d",a[i])
void print (int a[],int left,int right )
{if (left<right)
{ print(a,left+1,right-1); //递归
printf("%4d%4d",a[left],a[right]);
}
}
main()
{ int a[10],i;
for (i=0;i<10;i++)a[i]=i+1;
PRN ; printf("\n");
print(a,0,9);
}
4.使二维数组a按右侧所示的形式输出数据,请在横线上填上适当的语句。
main ()
for (i=0; i<5; i++)
for (j=0; j<5; j++)a[i][j]=____; /* 第二空*/
for (i=0; i<5; i++)
{ for (j=0; j<5; j++)
printf (″%2d″, a [i] [j]);
________; /* 第三空*/
}
}
5.函数bubblesort(int a[],int n)的功能是对长度为n的整型数组采用冒泡排序法进行升序排列,请将函数补充完成。
void bubblesort(int a[] ,int n)
{ int flag,i,j,t;
; /*第一空*/
i=n ; /*i表示当前参与冒泡排序的元素个数,初值为n*/
while (flag )
{ ; /*第二空*/
for (j=0;j<i-1;j++)
if (a[j]>a[j+1])
{ t=a[j];
a[j]=a[j+1];
a[j+1]=t;
flag=1;
}
; /*第三空*/
}
}
6.函数strcat1()的功能是实现字符串的连接,strcmp1()是实现字符串的比较,请在横线上填上适当的语句。
void strcat1(char t[], char s[])
{ while ()/*第一空*/
t++;
while (*t++= ); /*第二空*/
}
int strcmp1(char *t, char *s)
{ while (*t && *s && *t= =*s)
{ t++;
s++;
}
return ;
/*第三空*/
} 四、编程题(第1小题12分,第2小题16分,共28分)
1.编写一个程序,采用循环程序计算并输出sum= ++++++13
2181358352312前20项之和。
2.采用函数结构编写程序,要求用函数输出二维数组中的所有鞍点,并返回数组中鞍点的个数(鞍点在它所在的行中最大,同时在它所在的列最小,也可能没有鞍点)。
主程序进行数组的输入和鞍点程序的调用。