首页 二级C语言选择题

二级C语言选择题

举报
开通vip

二级C语言选择题1 1.下列叙述中正确的是 × 正确答案为D A)C语言编译时不检查语法+ B)C语言的子程序有过程和函数两种 C)C语言的函数可以嵌套定义 D)C语言所有函数都是外部函数 2.以下叙述中正确的是 × 正确答案为B A)C语言的源程序不必通过编译就可以直接运行 B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C)C源程序经编译形成的二进制代码可以直接运行 D)C语言中的函数不可以单独进行编译 3.C语言程序的基本单位是 × 正确答案为C A)程序行 B)语句 C)函数 D)字符 4.以下叙述中正确的是...

二级C语言选择题
1 1.下列叙述中正确的是 × 正确答案为D A)C语言编译时不检查语法+ B)C语言的子程序有过程和函数两种 C)C语言的函数可以嵌套定义 D)C语言所有函数都是外部函数 2.以下叙述中正确的是 × 正确答案为B A)C语言的源程序不必通过编译就可以直接运行 B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C)C源程序经编译形成的二进制代码可以直接运行 D)C语言中的函数不可以单独进行编译 3.C语言程序的基本单位是 × 正确答案为C A)程序行 B)语句 C)函数 D)字符 4.以下叙述中正确的是 × 正确答案为A A)构成C程序的基本单位是函数 B)可以在一个函数中定义另一个函数 C)main()函数必须放在其它函数之前 D)所有被调用的函数一定要在调用之前进行定义 5.在一个C程序中 × 正确答案为B A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5.以下关于函数的叙述中正确的是  × 正确答案为B A)每一个函数都可以被其他函数调用(包括main函数)。 B)每一个函数都可以被单独编译。 C)每个函数都可以单独运行。 D)在一个函数内部可以定义另一个函数。 6.C语言中用于结构化程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 的三种基本结构是 × 正确答案为A A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue 7.结构化程序由三种基本结构组成,三种基本结构组成的算法 × 正确答案为A A)可以完成任何复杂的任务 B)只能完成部分复杂的任务 C)只能完成符合结构化的任务 D)只能完成一些简单的任务 8.以下叙述中正确的是 × 正确答案为A A)C程序中注释部分可以出现在程序中任意合适的地方 B)花括号“{”和“}”只能作为函数体的定界符 C)构成C程序的基本单位是函数,所有函数名都可以由用户命名 D)分号是C语句之间的分隔符,不是语句的一部分 9.以下叙述中错误的是  × 正确答案为C A)C语句必须以分号结束。 B)复合语句在语法上被看作一条语句。 C)空语句出现在任何位置都不会影响程序运行。 D)赋值表达式末尾加分号就构成赋值语句。 10.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是 × 正确答案为B A) 有零个或多个输入 B)有零个或多个输出 C) 有穷性 D)可行性 11.算法具有五个特性,以下选项中不属于算法特性的是 × 正确答案为B A)有穷性 B)简洁性 C)可行性 D)确定性 12.以下叙述中正确的是 × 正确答案为C A)用C程序实现的算法必须要有输入和输出操作 B)用C程序实现的算法可以没有输出但必须要有输入 C)用C程序实现的算法可以没有输入但必须要有输出 D)用C程序实现的算法可以既没有输入也没有输出 13.用C语言编写的代码程序 × 正确答案为B A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行 14.C语言中最简单的数据类型包括 × 正确答案为B A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型 15.以下选项中属于C语言的数据类型是 × 正确答案为C A)复数型 B)逻辑型 C)双精度型 D)集合型 16.下列叙述中正确的是 × 正确答案为D A)C语言中既有逻辑类型也有集合类型 B)C语言中没有逻辑类型但有集合类型 C)C语言中有逻辑类型但没有集合类型 D)C语言中既没有逻辑类型也没有集合类型 17.以下叙述正确的是 × 正确答案为B A)可以把define和if定义为用户标识符 B)可以把define定义为用户标识符,但不能把if定义为用户标识符 C)可以把if定义为用户标识符,但不能把define定义为用户标识符 D)define和if都不能定义为用户标识符 18.下列关于C语言用户标识符的叙述中正确的是 × 正确答案为B A)用户标识符中可以出现在下划线和中划线(减号) B)用户标识符中不可以出现中划线,但可以出现下划线 C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头 19.以下选项中合法的用户标识符是 × 正确答案为B A)long B)_2Test C)3Dmax   D)A.dat 20.下列选项中,合法的C语言关键字是 × 正确答案为D A)VAR B)cher C)integer D)default 21.以下有4组用户标识符,其中合法的一组是 × 正确答案为C A)For -sub Case B)4d DO Size C)f2_G3 IF abc D)WORD void define 22.以下不能定义为用户标识符的是 × 正确答案为D A)scanf B)Void C)_3com_ D)int 23.以下4组用户定义标识符中,全部合法的一组是 × 正确答案为A A)_main enclude sin B)If -max turbo C)txt REAL 3COM D)int k_2 _001 24.下列选项中,不能用作标识符的是 × 正确答案为D A)_1234_ B)_1_2 C)int_2_ D)2_int_ 25.以下不能定义为用户标识符的是 × 正确答案为D A)Main B)_0 C)_int D)sizeof 26.C语言提供的合法的数据类型关键字是 × 正确答案为B A)Double B)short C)integer D)Char 27.在C语言提供的合法的关键字是 × 正确答案为D A)swicth B)cher C)Case D)default 28.以下叙述错误的是  × 正确答案为A A)用户所定义的标识符允许使用关键字。 B)用户所定义的标识符应尽量作到“见名知意”。 C)用户所定义的标识符必须以字母或下划线开头。 D)用户所定义的标识符中,大小写字母代表不同标识。全国计算机等级考试二级笔试试卷 (14)若变量已正确定义并赋值,以下符合C语言语法的表达式是 A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b (15)下列可用于C语言用户标识符的一组是 A)void, define, WORD B)a3_b3, _123,Car C)For, -abc, IF Case D)2a, DO, sizeof (16)C语言中运算对象必须是整型的运算符是 A)%= B)/ C)= D)<= (17)若变量a,i已正确定义,且i已正确赋值,合法的语句是 A)a= =1 B)++i; C)a=a++=5; D)a=int(i); (18)已知 int t=0; while (t=1) {...} 则以下叙述正确的是 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 (19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是 A)10<回车>22<回车>33<回车> B)10.0,22.0,33.0<回车> C)10.0<回车>22.033.0<回车> D)10 22<回车>33<回车> (20)有如下程序: main() { int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是 A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2 (21)有以下程序 main() {int i=1,j=1,k=2; if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k); } 执行后输出结果是 A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 (22)有如下程序 main() {float x=2.0,y; if(x<0.0)y=0.0; else if(x<10.0)y=1.0/x; else y=1.0; printf("%f\n",y);} 该程序的输出结果是 A)0.000000 B)0.250000 C)0.500000 D)1.000000 (23)有如下程序: main() {int n=9; while(n>6){n--; printf("%d",n);} } 该程序的输出结果是 A)987 B)876 C)8765 D)9876 (24)在下列选项中,没有构成死循环的是 A)int i=100; while(1) {i=i%100+1; if(i>100)break; } B)for(;;); C)int k=10000; do{k++;}while(k>10000); D)int s=36; while(s)--s; (25)设int x=1,y=1;表达式(!x||y--)的值是 A)0 B)1 C)2 D)-1 (26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参 (27)有以下程序 float fun(int x,int y) {return(x+y);} main() {int a=2,b=5,c=8; printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); } 程序运行后的输出结果是 A)编译出错 B)9 C)21 D)9.0 (28)若有以下调用语句,则不正确的fun函数的首部是 main() { … int a[50],n; … fun(n, &a[9]); … } A)void fun(int m, int x[]) B)void fun(int s, int h[41]) C)void fun(int p, int *s) D)void fun(int n, int a) (29)fseek函数的正确调用形式是 A)fseek(文件指针,起始点,位移量) B)fseek(文件指针,位移量,起始点) C)fseek(位移量,起始点,文件指针) D)fseek(起始点,位移量,文件指针) (30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是 A)EOF B)-1 C)1 D)NULL (31)若有说明语句:char c='\72';则变量c A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定 (32)若有说明 int a[3][4];则a数组元素的非法引用是 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] (33)设有以下说明语句 struct stu {int a; float b; } stutype; 则下面的叙述不正确的是 A)struct是结构体类型的关键字 B)struct stu是用户定义的结构体类型 C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名 (34)在C语言中,引用数组元素时,其数组下标的数据类型允许是 A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型的表达式 (35)若运行时给变量x输入12,则以下程序的运行结果是 main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y); } A)0 B)22 C)12 D)10( (36)以下说法正确的是 A)C语言程序总是从第一个的函数开始执行 B)在C语言程序中,要调用函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分 (37)表达式0x13^0x17的值是 A)0x04 B)0x13 C)0xE8 D)0x17 (38)有以下程序 #define F(X,Y)(X)*(Y) main() {int a=3, b=4; printf("%d\n", F(a++, b++)); } 程序运行后的输出结果是 A)12 B)15 C)16 D)20 (39)下列程序执行后的输出结果是 void func(int *a,int b[]) { b[0]=*a+6; } main() {int a,b[5]; a=0; b[0]=3; func(&a,b); printf("%d\n",b[0]); } A)6 B)7 C)8 D)9 (40)若有下面的程序段: char s[]="china";char *p; p=s; 则下列叙述正确的是 A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等 D)*p与s[0]相等 (41) 以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序 void sort(int a[],int n) {int i,j,t; for(i=0;i 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 序列组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 (49)有以下程序 void ss(char *s,char t) {while(*s) {if(*s= =t)*s=t-'a'+'A'; s++; } } main() {char str1[100]="abcddfefdbd",c='d'; ss(str1,c); printf("%s\n",str1); } 程序运行后的输出结果是 A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd (50)若以下定义: struct link {int data; struct link *next; } a,b,c,*p,*q; 且变量a和b之间已有如下图所示的链表结构: 指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是: A)a.next=c; c.next=b; B)p.next=q; q.next=p.next; C)p->next=&c; q->next=p->next; D)(*p).next=q; (*q).next=&b; 二、填空 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 (8)下列程序的输出结果是【8】。 maim () {char b []="Hello you"; b[5]=0; printf ("%s\n",b);} 解析: 语句b[5]=0;相当于语句b[5]=′\0′,且′\0′为字符串结束标志,输出时遇到′\0′就停止输出。 (9)当调用函数时,实参是一个数组名,则向函数传递的是【9】。 解析: 在函数中,可以通过指针变量来引用调用函数中对应的数组元素,此操作是通过传递数组的首地址来实现。 (10)以下程序的输出结果是【10】。 int a=1234; printf ("%2d\n",a); 解析: 在%与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插入的宽度小于实际的宽度时,则实际的宽度输出。 (11) 用高级语言编写的程序称为【11】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。 解析: 用高级语言编写的程序称为源程序,源程序不能在计算机上直接运行,运行源程序有两种方式:一种是通过解释程序,对源程序逐句解释执行;另一种是先让编译程序将源程序一次翻译产生目标程序(目标程序是计算机可直接执行的机器语言程序,它是一种二进制代码程序),然后执行目标程序。 (12) 以下程序的输出结果是【12】。 main() {int a=0; a+=(a=8); printf("%d\n",a);} 解析: 赋值表达式的值就是所赋值变量的值,本题中a+=8相当于a=a+8,对表达式逐步进行求解: a+=(a=8)此时,a的值由于赋值为8,而不是0 a+=8 a=a+8 a=16 (13)函数 void fun(float *sn, int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。 void fun( float *sn, int n) { float s=0.0, w, f=-1.0; int i=0; for(i=0; i<=n; i++) { f=【13】* f; w=f/(2*i+1); s+=w; } 【14】=s;} 解析: C语言中实参变量和形参变量的数据传递是单向的“值传递”方式。指针变量作函数也要遵循这一规则。调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。 (14)函数fun的功能是:根据以下公式求p的值,结果由函数值返回。m与n为两个正数且要求m>n。 例如:m=12,n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。 #include #include float fun (int m, int n) { int i; double p=1.0; for(i=1;i<=m;i++)【15】; for(i=1;i<=n;i++)【16】; for(i=1;i<=m-n;i++)p=p/i; return p;} main () { clrscr(); printf ("p=%f\n",fun (12,8));} 解析:本题中,欲求p的值,需要先求m,n,m-n的阶乘值,可用循环语句实现。 (15)该程序运行的结果是【17】。 #include #include #define M 100 void fun(int m, int *a, int *n) { int i,j=0; for(i=1;i<=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j;} main() { int aa[M],n,k; clrscr(); fun(10,aa,&n); for(k=0;k #include #define M 81 int fun(char *ss, char c) { int i=0; for(; 【18】;ss++) if(*ss==c)i++; return i;} main() { char a[M], ch; clrscr(); printf("\nPlease enter a string: "); gets(a); printf("\nPlease enter a char: "); ch=getchar(); printf("\nThe number of the char is: %d\n", fun(a,ch));} 解析: 从字符串ss中找出子字符串的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 是:从第1个字符开始,对字符串进行遍历;若ss串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若ss串的字符和c串的字符对应不同,继续对ss串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if()的作用是进行判断是否相同,若与c相同则表示又出现一次。 (17)下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。 #include "stdio.h" FILE *fp; { char ch; if((fp=fopen(【19】))==NULL)exit(0); while((ch=getchar( ))!='@')fputc (ch,fp); fclose(fp);} 解析: fopen函数的调用方式通常为: FILE *fp fp=fopen(文件名,使用文件方式); (18)设有如下宏定义 #define MYSWAP(z,x,y) {z=x;x=y;y=z;} 以下程序段通过宏调用实现变量a,b内容交换,请填空。 float a=5,b=16,c; MYSWAP(【20】,a,b); 解析: 该题考查两个知识点: (1)用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为#define 标识符 字符串 (2)在MYSWAP宏定义中,利用中间变量z来交换x和y的值,所以要实现a和b的交换,只需通过中间变量即可,所以,此处应填c。 (2…..) 一、选择题 (11)下列叙述中正确的是   A)C语言编译时不检查语法  B)C语言的子程序有过程和函数两种   C)C语言的函数可以嵌套定义   D)C语言的函数可以嵌套调用 (12)在C语言中,退格符是   A)\n  B)\t  C)\f  D)\b (13)以下叙述中正确的是   A)构成C程序的基本单位是函数   B)可以在一个函数中定义另一个函数   C)main()函数必须放在其他函数之前   D)所有被调用的函数一定要在调用之前进行定义 (14)在C程序中,判逻辑值时,用“非0”表示逻辑值“真”, 又用“0”表示逻辑值“假”。 在求逻辑值时,用()表示逻辑表达式值为“真”, 又用()表示逻辑表达式值为“假”。   A)1 0  B)0 1  C)非0 非0  D)1 1 (15)在C语言中,运算对象必须是整型数的运算符是   A)%  B)\  C)%和\  D)** (16)字符型数据在机器中是用ASCII码表示的,字符“5”和“7”在机器中表示为   A)10100011和 01110111  B)01000101和01100011   C)00110101和00110111  D)01100101和01100111 (17)若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后   a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序输出的结果是   A)***a=25,b=13,c=19  B)***a=26,b=14,c=19   C)### a=25,b=13,c=19  D)### a=26,b=14,c=19 (18)若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是   A)2.500000  B)2.750000  C)3.500000  D)0.000000 (19)下列程序段的输出结果是:   int a=1234;  float b=123.456;   double c=12345.54321;   printf("%2d,%2.1f,%2.1f",a,b,c); A)无输出 B)12,123.5,12345.5  C)1234,123.5,12345.5 D)1234,123.4,1234.5 (20)若运行以下程序时,从键盘输入 ADescriptor表示回车),则下面程序的运行结果是#include   main()   {char c;   int v0=1,v1=0,v2=0;   do{switch(c=getchar())   {case ′a′:case ′A′:   case ′e′:case ′E′:   case ′i′:case ′I′:   case ′o′:case ′O′:   case ′u′:case ′U′:v1+=1;   default:v0+=1;v2+=1; }    }while(c!=′\n′);    printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}   A)v0=7,v1=4,v2=7  B)v0=8,v1=4,v2=8   C)v0=11,v1=4,v2=11  D)v0=13,v1=4,v2=12 (21)设有以下程序段   int x=0,s=0;   while(!x!=0)s+=++x;   printf("%d",s);   则  A)运行程序段后输出0  B)运行程序段后输出1   C)程序段中的控制表达式是非法的  D)程序段执行无限次 (22)有如下程序   main()   { float x=2.0,y;   if(x<0.0)y=0.0;   else if(x>10.0)y=1.0/x;   else y=1.0;   printf("%f\n",y);}   该程序的输出结果是   A)0.000000  B)0.250000  C)0.500000  D)1.000000 (23)执行下面的程序段后,变量k中的值为   int k=3, s[2];   s[0]=k; k=s[1]*10;   A)不定值  B)33  C)30  D)10 (24)以下程序段的描述,正确的是   x=-1;   do   {x=x*x;}   while(!x);   A)是死循环  B)循环执行两次  C)循环执行一次  D)有语法错误 (25)以下选项错误的是   A)main()   { int x,y,z;   x=0;y=x-1;  z=x+y;}   B)main()   { int x,y,z;   x=0,y=x+1;  z=x+y;}   C)main()   { int x;int   int y;   x=0,y=x+1;  z=x+y;}   D)main()   { int x,y,z;   x=0;y=x+1;  z=x+y,} (26)有如下程序段   int a=14,b=15,x;   char c=′A′;   x=(a&&b)&&(c<′B′);   执行该程序段后,x的值为   A)ture  B)false  C)0  D)1 (27)下列程序执行后的输出结果是   void func1(int i);   void func2(int i);   char st[]="hello,friend!";   void func1(int i)   { printf("%c",st[i]);   if(i<3){i+=2;func2(i);}}   void func2(int i)   { printf("%c",st[i]);   if(i<3){i+=2;func1(i);}}   main()   { int i=0; func1(i); printf("\n");}   A)hello  B)hel  C)hlo  D)hlm (28)以下函数返回a所指数组中最大值所在的下标值   fun(int *a,int n)   { int i,j=0,p;   p=j;   for(i=j;ia[p])_________;   return(p);}   在下划线处应填入的内容是   A)i=p  B)a[p]=a[i]  C)p=j  D)p=I (29)下面说明不正确的是   A)char a[10]="china";  B)char a[10],*p=a;p="china"   C)char *a;a="china";  D)char a[10],*p;p=a="china" (30)以下程序的输出结果是   #include   void prt (int *x, int *y, int *z)   {printf("%d,%d,%d\n",++*x,++*y,*(z++));}   main()   {int a=10,b=40,c=20;   prt (&a,&b,&c);  prt (&a,&b,&c);}   A)11,42, 31     12,22,41   B)11,41,20     12,42,20   C)11,21,40     11,21,21   D)11,41,21     12,42,22 (31)若有函数内部说明:int a[3][4];则数组a中各元素   A)可在程序的运行阶段得到初值0   B)可在程序的编译阶段得到初值0   C)不能得到确定的初值   D)可在程序的编译或运行阶段得到初值0 (34)定义如下变量和数组:   int k;   int a[3][3]={9,8,7,6,5,4,3,2,1};   则下面语句的输出结果是   for(k=0;k<3;k++)printf("%d",a[k][k]);   A)7 5 3  B)9 5 1  C)9 6 3  D)7 4 1 (35)下列程序执行后的输出结果是   main()   { char arr[2][4];   strcpy(arr,"you"); strcpy(arr[1],"me");   arr[0][3]=′&′;   printf("%s\n",arr);}   A)you&me  B)you  C)me  D)err (36)有以下函数   char fun(char *p)   {return p;}   该函数的返回值是   A)无确切的值  B)形参p中存放的地址值   C)一个临时存储 单元 初级会计实务单元训练题天津单元检测卷六年级下册数学单元教学设计框架单元教学设计的基本步骤主题单元教学设计 的地址  D)形参p自身的地址值 (37)以下正确的说法是   A)定义函数时,形参的类型说明可以放在函数体内   B)return后边的值不能为表达式   C)如果函数值的类型与返回值类型不一致,以函数值类型为准   D)如果形参与实参类型不一致,以实参类型为准 (38)有以下程序   int f(int n)   { if(n==1)return 1;   else return f(n-1)+1;}   main()   { int i,j=0;   for(i=1;i<3;i++)j+=f(i);   printf("%d\n",j);}   程序运行后的输出结果是   A)4  B)3  C)2  D)1 (39)设有如下定义:   struck sk   { int a;  float b;   } data;   int *p;   若要使P指向data中的a域,正确的赋值语句是   A)p=&a;  B)p=data.a;  C)p=&data.a;  D)*p=data.a;‘ (40)以下对结构体类型变量的定义中,不正确的是   A)typedef struct aa   { int n;  float m;  }AA;   AA tdl;   B)#define AA struct aa   AA{ int n;  float m;  } tdl;   C)struct   { int n;  float m;  } aa;   struct aa tdl;   D)struct   { int n;  float m;  } tdl; (41)若说明int *p,n;则通过语句scanf能够正确读入数据的程序段是   A)p=&n;scanf("%d",&p);  B)p=&n;scanf("%d",*p);   C)scanf("%d",n);  D)p=&n;scanf("%d",p); (42) 在下述程序中,判断i>j共执行的次数是   main()   {int i=0, j=10, k=2, s=0;   for (;;)   {i+=k;   if(i>j)   {printf("%d",s);   break;   }s+=i;   }  }   A)4  B)7  C)5  D)6 (43)以下4个选项中,不能看做一条语句的是   A);  B)a=5,b=2.5,c=3.6;  C)if(a<5);  D)if(b!=5)x=2;y=6; (44)在C语言中,变量的隐含存储类别是   A)auto  B)static  C)extern  D)无存储类别 (45)若有以下程序   #include   void f(int n);   main()   { void f(int n);   f(5);   }   void f(int n)   { printf("%d\n",n); }   则以下叙述中不正确的是   A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f   B)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f   C)对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明   D)函数f无返回值,所以可用void将其类型定义为无返回值型 (46)若有下面的说明和定义   struct test   { int ml; char m2; float m3;   union uu {char ul[5]; int u2[2];} ua;   } myaa;   则sizeof(struct test )的值是   A)12  B)16  C)14  D)9 (47)以下程序的输出是   struct st   { int x; int *y;} *p;   int dt[4]={ 10,20,30,40 };   struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};   main()   { p=aa;   printf("%d\n",++(p->x));   }   A)10  B)11  C)51  D)60 (48)若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是   A)sizeof,&=,<<,^  B)sizeof,<<,^,&=   C)^,<<,sizeof,&=  D)<<,^,&=,sizeof (49)函数fseek(pf, OL,SEEK_END)中的SEEK_END代表的起始点是   A)文件开始  B)文件末尾  C)文件当前位置  D)以上都不对 (50)有以下程序   #include   main()   { FILE *fp; int i=20,j=30,k,n;   fp=fopen("d1.dat","w");   fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);   fclose(fp);   fp=fopen("d1.dat","r");   fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);   fclose(fp);   }   程序运行后的输出结果是   A)20 30  B)20 50  C)30 50D)30 20 二、填空题 (6)以下程序的运行结果是【6】。 #define MAX (a,b)(a>b?a:b)+1 main () { int i=6,j=8,k; printf ("%d\n",MAX(i,j)); } 解析: 本题考查宏定义与三目运算符的综合用法,宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则为b+1的值为整个表达式的值,(应注意后面的加1)。 (7)以下程序的功能是从健盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。请填空。 main () {float x,amax,amin; scanf ("%f",&x); amax=x; amin=x; while (【7】) {if (x>amax) amax=x; else if【8】 amin=x; else scanf ("%f",&x); } printf ("\n amax=%f\n amin=%f\n",amax,amin); } 解析: 本题先从键盘接受数值,并分别赋给amax(用于保存最高成绩)和amin(用干保存最低成绩),然后通过while循环控制是否结束输入,并且通过if语句来给amax和amin赋值和进行下一次的输入。 (8)在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是【9】。 答案;rewind() (9)在计算机中,字符的比较是对它们的【10】进行比较。 解析: C语言中,字符也可以进行比较运算,且是按照ASCII码值进行的。 (10)在内存中,存储字符′x′要占用1个字节,存储字符串″X″要占用【11】个字节。 解析: 计算机存储一个字符用1个字节,存储字符串时,每个字符用占用1个字节,另在字符串的有效字符之后存储1个字符串的结束标记符。所以存储字符串“X”要占用2个字节,存储字符′x′只要1个字节。 (11)下列程序的输出结果是16.00,请填空。 main() {int a=9, b=2; float x=【12】, y=1.1,z; z=a/2+b*x/y+1/2; printf("%5.2f\n", z ); } 解析: 本题最后一条语句,表示以浮点格式输出z的值,宽度为5,其中所含2位小数,应该注意的是,两个整型运算结果仍为整型,如1/2的结果为0,对本题可逐步求解: 16.00=9/2+2*x/1.1+1/2 16.00=4+2*x/1.1+0 12.00=2*x/1.1 所以,x的值为6.6。 (12)设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【13】。要求形参名为b。 main() {double s[10][22]; int n; ┆ ┆ fun(s); ┆ } 解析: 本题中,为了明确表示“不带回值”,可以用“void”定义“无类型”(或称“空类型”)。这系统就保证不使函数带回任何值,二维数组的第一维可以省略。 (13)下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。 main() {int i, x, y=1; scanf("%d", &x); for(i=2; i<=x/2; i++) if【14】{ y=0; break;} printf("%d\n", y); } 解析: 为判数x是否是素数,预置变量y的值为1(x可能是素数),然后用循环,用2至x/2的整数i测试对x的整除性,若能被其中的某个整数整除,则x是合数,置y的值为0(x不是素数),结束测试循环。若都不能整除,则x为素数。i能否整除x,可用求余运算x%i等于0来判定。所以程序中的空框可填x%i == 0。测试x为素数的代码可写成:y = 1; for(i=2; i <=x/2; i++) if(x%i == 0){ y = 0; break; } (14)下面程序的功能是将一个字符串str的内容颠倒过来,请填空。 #include main() { int i,j,【15】;char str[]={"1234567"}; for(i=0,j=strlen(str)【16】;i=0;--i) {d=c[i];printf("%c",b【18】);} printf("\n"); } 解析: 程序中,字符数组b存储十六进制的16个数字符,整型数组c存储译出的十六进制数的各位数值。从整数n译出它的各位十六进制数值,需采用除16取余的方法,即求n除16的余,得到它的十六进制的个位数,接着将n除以16。在n不等于0的情况下循环,能顺序求出n的十六进制的个位数、十位数、百位数等等。程序中变量base已预置16,所以在第1个空框处可填代码n%base。当n的十六进制数的个位、十位、百位等依次存放于数组c中后,就从最高位至最低位,参照数组c[i]的内容d(以其内容为下标),取十六进制数字符表中的字符b[d]输出。所以在第2个空框处可填入代码[d]。 (16)若给fun函数的形参s传送字符串:“]]6354abcc” (其中]表示空格字符),则函数的返回值是【19】。 #include long fun(char s[]) {long n;int sign; for(;isspace(*s);s++); sign=(*s==′-′)?-1:1; if(*s==′+′||*s==′-′)s++; for(n=0;isdigit(*s);s++)n=10*n+(*s-′0′); return sign*n; } 解析: 函数fun的第一个for循环跳过字符串的前导空白符,接着判断第一个非空白符是否是负号,若是则置变量sign为-1;否则,置变量sign为1。接着的if语句在第一个非空白字符是负号或正号时,跳过该字符。以后的for循环将后面的数字符当作十进制数的各位数字译出一个长整数n。遇字符a时,结束循环。最后,函数返回sign与n的乘积。所以若调用函数时提供的实参是“∪∪6354abc”,函数返回值是6354。 (17)设有定义“struct {int a; float b; char c;} abc, *p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc【20】a。 解析: 若有结构变量abc有成员a,并有指针p_abc指向结构变量abc,则引用变量abc成员a的标记形式有abc . a和p_abc->a。 (3….)一、选择题 (11)以下叙述中正确的是   A)构成C程序的基本单位是函数  B)可以在一个函数中定义另一个函数   C)main()函数必须放在其他函数之前  D)C函数定义的格式是K&R格式 (13)一个C语言程序是由   A)一个主程序和若干子程序组成  B)函数组成  C)若干过程组成   D)若干子程序组成 (14)请选出可用作C语言用户标识符的是   A)void,define,WORD  B)a3_b3,_123,IF  C)FOR,--abc,Case  D)2a,Do,Sizeof (15)下列各数据类型不属于构造类型的是   A)枚举型  B)共用型  C)结构型  D)数组型 (16)在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是   A)a=20000+20000;  B)a=4000*10;  C)a=30000+10000;  D)a=4000L*10L (17)以下不正确的叙述是   A)在C程序中,逗号运算符的优先级最低   B)在C程序中,APH和aph是两个不同的变量   C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
本文档为【二级C语言选择题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_026433
暂无简介~
格式:doc
大小:410KB
软件:Word
页数:94
分类:互联网
上传时间:2010-12-02
浏览量:69