C复习题&答案
- 格式:doc
- 大小:109.00 KB
- 文档页数:26
c语言复习题一、单项选择题1.以下叙述中错误的是? A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识2、c语言数据的基本类型包括()A、整型、字符型、实型B、整型、字符型、实型、枚举类型C、整型、实型、枚举类型、指针类型 D、整型、字符型、实型、数组类型3.以下不合法的字符常量是A.’\019’B.’\’’’C.’\\’D.’\xcc’4、c语言允许使用的变量标识符是()A、x#yB、12shC、j_c_tD、char5.设有以下语句。
int a=1,b=2,c;c=a^(b<<2);执行后,c的值为 A.6 B.7 C.8 D.96、c语言中合法的字符常量是()A、‘\084’B、‘\X43’C、‘ab’D、“\0”7.下列标识符中,合法的变量名有? A.a.b B.$888 C.A1 D.3x568、若定义x和y为double型,则表达式:x=1,y=x*3/2的值是()A、1B、2C、 2.0D、1.59、若有以下类型说明语句:char w;int x;float y;double z;则表达式 w*x+z-y的结果为()类型A、floatB、char C 、int D、double10、下列表达式中,()可以正确表示x<=0或x>=1的关系A、(x>1)or (x<=0)B、x>1 || x<=0C、x>1 or x<=0D、x>=1 || x<=011.下列不正确的表达式是A.10%3+5%3B.10/3+5/3C.10%3/2D.(10.0/3.0%3)/212.以下四个选项中,不能看作一条语句的是A.{;}B.a=0,b=0,c=0;C.a>0;D.m=1;n=2;13.设x为int 型变量,则执行以下语句后,x的值为x=10;x+=x-=x-x;A.10B.20C.40D.3014、若定义a为整型数据变量则a=-2 L;printf(“%d\n”,a);以上语句结果为()A、赋值语句不合法B、输出值为-2C、输出值为不确定值D、输出值为215、现已定义整型变量int i=1;执行循环语句“while(i++<5)后i的值变为()A、1B、5C、6D、以上三个答案均不正确16、若执行下述程序时,从键盘输入数据3和4,则程序的输出结果是()main(){ int a ,b ,s;scanf(“%d%d”,&a,&b);s=a;if(a<b)< p="">s=b;s=s*s ;printf(“%d”,s);}A、14 B、16 C、18 D、2017、若数组名作为函数参数传递给函数,作为实参的数组名被处理为()A、该数组的长度 B、该数组的元素个数C、该数组中各元素的值 D、该数组的首地址18、c语言允许函数值类型缺省定义,此时该函数值隐含的类型是()A、float型B、int型C、long型D、double型19、在c语言中,存储类型为()的变量只在使用它们的时候才占用存储空间A、static和autoB、register和autoC、static和registerD、register和extern20、下面程序片段的输出结果是()char str[]=“abcd”,*p=str;printf(“%d\n”,*(p+4));A、68 B、0 C、字符‘d’的地址D、不确定的值21、设有以下说明,已知int类型占2个字节,则下列叙述正确的是()struct st{int a;int b[2];} a;A、结构变量名a和结构成员a同名,不合法B、程序运行时将为结构体st分配6个字节的内存单元C、程序运行时不为结构体st分配内存单元D、程序运行时将为结构体变量a分配6个字节的内存单元22、求字符串长度的函数是()A、strcat B、strcpy C、strcmpD、strlen 23.现已定义整型变量 int i=1;执行循环语句“while(i++<5);”后,i的值为A.1B.5C.6D.以上三个答案均不正确24.以下叙述中错误的是A.C语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句25.设有定义:int a=2,b=3,c=4;时,以下选项中值为0的表达式是A.(!a= =1)&& (!b= =0)B.aC. a&&bD.a||(b+b)&&(c-a)26.C语言中,定义PI为一个符号常量,正确的是A.#define PI 3.14B.define PI 3.14C.#include PI 3.14D.include PI 3.1427.下面关于switch语句和break语句的结论中,只有是正确的A.break语句是switch语句中的一部分B.在swtich语句中可以根据需要使用或不使用break语句C.在swtich语句中必须使用break语句D.以上三个结论中有两个是正确的28.有以下程序:main(){int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是 A.自然数1~9的累加和 B.自然数1~10的累加和C.自然数1~9中的奇数之和D.自然数1~10的偶数之和29.在C语言函数的定义和引用中,以下描述正确的是A.必须有形式参数B.也可以没有形式参数 C.数组名不能作为形式参数 D.形式参数必须是变量名30.下列关于return语句的说法,正确的是A.必须在每个函数中都出现B.只能在除主函数之外的函数中出现一次C.可以在同一个函数中多次出现D.在主函数和其他函数中都可以出现31.下列说法不正确的是A.形式参数是局部变量B.主函数main 中定义的变量在整个文件或程序中都又效C.在一个函数的内部,可以在复合语句中定义变量D.不同的函数中,可以使用相同名字的变量32.以下叙述正确的是A.do-while语句构成的循环不能用其它语句构成的循环来代替B.do-while语句构成的循环只能用break语句退出C.用do-while语句构成的循环,在while后的表达式为非零时结束循环D.用do-while语句构成的循环,在while后的表达式为零时结束循环33.下列数组定义语句正确的是A.int a[][]={1,2,3,4,5,6};B.char a[2][3]=’a’,’b’C.int a[][3]={1,2,3,4,5,6};D.static int a[][]={{1,2,3},{4,5,6}}; 34.若定义int a[3][4];则下列选项不能表示数组元素a[1][1]地址的是A.a[1]+1B.&a[1][1]C.*(a+1)[1]D.*(a+5)35.已知int 和double类型分别占2个和8个字节,若有如下定义:Struct data{ int i;char ch;double f;}b;则结构变量b占用内存的字节数是 A.7 B.2 C.8 D.1136.对于以下递归函数f,调用f(4),其返回值为int f(int n){ return f(n-1)+n;}A.10 B.11 C.0 D.以上均不是37.有以下程序:main(){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf(“%d\n”,*p+*q);}程序运行后的输出结果是 A.16 B.10 C.8 D.638.C语言中操作文件的正确顺序是A.读写,关闭,打开B.打开,读写,关闭C.打开,关闭,读写D.读写,打开,关闭39.定义union s{int w,x,y,z;char c[6];};,请问执行sizeof(union s)=A.2B.6C.8D.1440.说明语句int *f();中的标识符f代表A.一个用于指向整型数据的指针变量B.一个用于指向一维数组的行指针C.一个用于指向函数的指针变量D.一个返回值为指针型的函数名二、填空题1.设有程序段:int k=10;while(k=0) k=k-1;则循环体语句执行次。
C期末考试复习题(答案)C语言复习题一、单项选择题1、C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。
A).c B).obj C).exe D).bas2、)完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( B )A)连接、编译B)编译、连接 C)连接、运行D)运行3、关于C语言的叙述中,不正确的是(D)A)C程序可由一个或多个函数组成B)C程序必须包含一个main ()函数C)C程序的基本组成单位是函数D)注释说明只能位于一条语句的后面4、一个C程序的执行是从(A )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束5、以下正确的叙述是(C )A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误6、下列选项中,不能用作标识符的是( D)。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_7、常数的书写格式决定了常数的类型和值,0x1011是( C )A)8进制整型常量B)字符常量 C)16进制整型常数D)2进制整型常数8、以下4组用户定义标识符中,全部合法的一组是( A )A)_total clu_1 sum B)if -max turbC)txt REAL 3COM D)int k_2 _0019、_( D )是合法的用户自定义标识符。
A) b-b B)float C)123a D) _isw10、以下选项中不正确的整型常量是( C )。
A) 12L B) -10 C) 1,900 D) 123U11、表达式( C )的值是0。
C语言复习题一、单项选择题(每小题2分)1. 对于一个正常运行的C程序,以下叙述正确的是_______。
A. 程序的执行总是从main()开始,在main()中结束。
B. 程序的执行总是从第一个函数开始,在main()中结束。
C. 程序的执行总是从main()开始,在最后一个函数中结束。
D. 程序的执行总是从main()开始,在最后一个函数中结束。
2. 下列数据中,为字符型常量的是_______。
A. "ab"B. "a"C.‘a’D. a3. int u=010,v=0x10,w=10; printf("%d,%d,%d\n",u,v,w);则输出结果是_______。
A. 8,16,10B.10,10,10C. 8,8,10D. 8,10,104. (a=3)&&(b=-3)的运算结果是_______。
A. -3B. 1C. 0D. 35. 在C语言中,字符串"\xaf\thello\65"的长度是_______。
A. 5 B.7 C. 8 D. 126. 设float x,由键盘输入:12.45, 能正确读入数据的输入语句是_________。
A.scanf("%5f",&x);B.scanf("%5d",&x);C.scanf("%f",x);D.scanf("%s",&x);7.int a=65,则printf("%d,%o,%x",a,a,a)的结果是_________。
A. 65,65,65B. 65,101,41C. A,101,41D. 65,41,1018. char c1=’a’,c2=’b’; c1=getchar(); c2=getchar();运行程序时,从键盘输入a<Enter键>,以下说法正确的是_________。
复习A:一、单项选择题1、如果要把常量327存入变量a中,a不能定义的类型是哪一个? ( )A)int B)char C)long D)float2、若x 为unsigned int 型变量,则执行下列语句后x值为()x = 65535;printf(“%d\n”,x);A)65535 B)1 C)无定值D)-13、有以下程序main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(″%d,%d\n″,k,m);}程序运行后的输出结果是()A)0,0 B)0,1 C)1,0 D)1,14、在C语言中,如果下面的变量都是int类型,则输出的结果是()。
sum=pad=5; pAd=sum + + ,pAd + +, + + pAd;printf("%d\n",pad);A) 7 B) 6 C) 5 D) 45、以下程序的输出结果是()。
main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A)1 B)0 C)非0的数D)-16、当执行以下程序段时()。
x=-1;do{x=x*x;}while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误7、全局变量的存储类型可以定义为()。
A)auto或static B)extern或registerC)auto或extern D)extern或static8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是()。
A)auto B)registerC)extern D)static9、已知:int a, x; 则正确的赋值语句是()。
A)a=(a[1]+a{2})/2; B)a*=*a+1; C)a=(x=1, x++, x+2); D)a="good";10、已知:int a, *p=&a; 则下列函数调用中错误的是()。
一、填空题(每空2 分,共 20 分)1.数据结构分为逻辑结构与()。
2.在面向对象方法中,对象之间进行通信的构造称为()。
3.衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准,其()是度量一个模块功能强度的一个相对指标。
4.一名学生只能住一间宿舍,一间宿舍可住多名学生,则实体“宿舍”与实体“学生”的联系属于()的联系。
5.数据模型包括数据结构、()和数据条件。
6.若有定义:int a=10,b=8,c=4;然后顺序执行下列语句后,变量a中的值是()。
c=(b-=(a-4));a=(c%2)+(b-1);1.C语言中,用关键字()定义基本整型变量,用关键字(),定义单精度实型变量,用关键字()定义字符型变量。
2.表达式3*20/4%10的计算结果是()。
3.复合语句是将多个语句用()括起来组成一个语句。
4.程序中使用putchar( )函数和getchar( )函数,在程序的开头必()。
5.C语言的预处理语句以()开头。
6.goto语句为(),当程序执行到该语句时,转向指定位置执行。
7.return语句的功能是使程序控制从被调用函数返回到()中。
1.一个算法应具有的特点有:()、()、有零个或多个输入、有一个或多个输出、有效性。
2.在程序执行过程中,其值不发生改变的量称为(),其值可变的量称为()。
3.若有定义:int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是()。
4.在三种正规循环中,当条件表达式的值为()时,就结束循环。
5.C语言中函数的参数分为()和()。
1.程序的三种基本结构为()、()和()。
2.在C语言中,用()表示语句的结束。
3.语句printf("%%d%d",123);将输出:()。
4.逻辑运算的结果值是()或()。
5.数组 int a[3][4];共定义了()个数组元素。
6.在C语言中,正确的标识符是由()组成的,且由()开头的。
以下作业编程练习,每个主题至少选择4道题作为作业题(各主题中所列题目不足4题的按实际数量选做)。
每次作业计2分,作为平时成绩。
另外,此练习题作为C 语言上机考试的考题来源之一(共49题)。
一、 顺序结构程序设计========================================1 已知三角形的三边长为a ,b ,c ,计算三角形面积的公式为: area = ))()((c s b s a s s ---,s =)(21c b a ++ 要求编写程序,从键盘输入a ,b ,c 的值,计算并输出三角形的面积。
2 编程从键盘输入圆的半径r ,计算并输出圆的周长和面积。
二、 选择结构程序设计==========================================1 从键盘任意输入一个年号,判断它是否是闰年。
若是闰年,输出“Yes ”,否则输出“No ”。
已知符合下列条件之一者是闰年:能被4整除,但不能被100整除。
能被400整除。
2 通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。
3 华氏和摄氏温度的转换公式为C =5/9×(F -32)。
其中,C 表示摄氏温度,F 表示华氏温度。
要求:华氏0℉~300℉,每隔20℉输出一个华氏温度对应的摄氏温度值。
4 编程判断输入整数的正负性和奇偶性。
5 编程计算分段函数e 1exx y -⎧⎪=⎨⎪-⎩ 000x x x >=< 输入x ,打印出y 值。
流程图如图1-2所示。
6 输入三角形的三条边a ,b ,c ,判断它们能否构成三角形。
若能构成三角形,指出是何种三角形(等腰三角形、直角三角形、一般三角形)。
7 在屏幕上显示一张如下所示的时间表:*****Time*****1 morning2 afternoon3 nightPlease enter your choice:操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息,选择1时显示"Good morning", 选择2时显示"Good afternoon", 选择3时显示"Good night",对于其他选择显示"Selection error!",用switch 语句编程实现。
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
所有单选题1、C语言中下列叙述正确的是__d____。
A:不能使用do-while语句构成的循环B:do-while语句构成的循环,必须用break语句才能退出C:do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 1真0假,1 进入循环 D:do-while语句构成的循环,当while语句中的表达式值为零时结束循环答案:D2、以下选项中属于C语言的数据类型是__C____。
A:复数型B:逻辑型C:双精度型D:集合型答案:C3、下列描述中不正确的是__C____。
A:字符型数组中可以存放字符串B:可以对字符型数组进行整体输入、输出C:可以对整型数组进行整体输入、输出D:不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值答案:C4、以下程序的输出结果是______。
main(){ int x=10,y=10,i;for(i=0;x>8 ;y=++i)printf("%d %d ",x--,y);}A:10 1 9 2B:9 8 7 6C:10 9 9 0D:10 10 9 1答案:D5、以下程序的输出结果是______。
main(){ char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i ;i=8;p=a+i;printf("%s\n",p-3);}A:6B:6789C:'6'D:789答案:B6、能正确表示a和b同时为正或同时为负的逻辑表达式是__D____。
A:(a>=0||b>=0)&&(a<0|| b<0)B:(a>=0&&b>=0)&&(a<0&&b<0)C:(a+b>0)&&(a+b<=0)D:a*b>0答案:D7、以下程序的输出结果是__A____。
一、填空共17题(共计60分)第1题(2.0分)题号:1172运行以下程序时,输出结果是【1】long fit(int n){if(n>2) return(fit(n-1)+fit(n-2));else return(3);}main(){printf("%ld\n",fit(4));}答案:=======(答案1)=======9第2题(2.0分)题号:1135以下程序运行后的输出结果是【1】.#include <string.h>void main(){ char ch[]="abc",x[3][4];int i;for(i=0;i<3;i++)strcpy(x[i],ch);for(i=0;i<3;i++)printf("%s",&x[i][i]); printf("\n");}答案:=======(答案1)=======abcbcc下列程序的输出结果是【1】#include <string.h>main( ){ char b[30];strcpy(&b[0],"CH"); strcpy(&b[1],"DEF"); strcpy(&b[2],"ABC"); printf("%s \n",b); }答案:=======(答案1)======= CDABC运行以下程序时,输出结果是【1】#include<stdio.h>int b;int fun (int a){ static int c=2;return((++a)+(++b)+(++c));}void main( ){ int i, a=1;for(i=0;i<2;i++)printf("%5d",fun(a));}答案:=======(答案1)=======6 8第5题(2.0分)题号:1147在函数内部声明局部变量时缺省了存储类型,则该变量存储类型是【1】. 答案:=======(答案1)=======auto=========或=========自动型有以下定义和语句struct date{ int day;int month;int year;union{ int share1;float share2;}share;}a;则sizeof(a)的值是【1】.答案:=======(答案1)=======10第7题(2.0分)题号:1428以下程序的运行结果是【1】main(){ int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}}; int i;int (*p)[4]=a;printf("a[2][3]=%d\n",i,j,*(*(p+i)+j));}答案:=======(答案1)=======15以下程序的运行结果是【1】void swap(int **r,int **s){ int *t;t=*r;*r=*s;*s=t;}main(){ int a=1,b=2,*p,*q;p=&a;q=&b;swap(&p,&q);printf("%d,%d\n",*p,*q);}答案:=======(答案1)=======2,1第9题(4.0分)题号:1155以下程序运行时, 输出结果的第一行是【1】, 第二行是【2】. #include <stdio.h>void f (int *x, int y){ *x=y+1 ; y=*x+2 ; }main( ){ int a=2, b=2 ;f(&a, b) ;printf("%d \n%d",a,b);}答案:=======(答案1)=======3=======(答案2)=======2第10题(4.0分)题号:1152设有以下main函数main(int argc, char *argv[ ]){ while(argc > 1){ ++argv;printf("%s\n", *argv);- -argc;}}经过编译、连接后得到可执行文件名为c1.exe,若在系统的命令状态下输入命令行:c1 nanjing xiaozhuang college<回车>, 则在第一行输出【1】,第三行输出【2】.答案:=======(答案1)=======nanjing=======(答案2)=======college请填空以使程序完整。
有一个m*n的矩阵,以下程序的功能是求出其中值最大的元素的值,以及相应得行号和列号。
#define M 4#define N 3main(){int i,j,row=0,colum=0,max;int a[M][N]={{1,23,3},{4,8,6},{17,6,1},{0,11,17}};【1】;for(i=0;i<=3;i++)for(j=0;j<=2;j++)if(【2】){max=a[i][j];row=i;colum=j;}printf("max=%d,row%d,colum=%d\n",max,row,colum);}答案:=======(答案1)=======max=a[0][0]=======(答案2)=======a[i][j]>max=========或=========max<a[i][j]以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数.例如,输入的字符串为:556,则输出十进制整数366.请填空.#include <string.h>main(){ char s[6];int n,i=0;gets(s);n= 【1】 -'0';while( 【2】 !='\0')n=n*8+s[i]-'0';printf("%d \n",n);}答案:=======(答案1)=======s[0]=======(答案2)=======s[++i]该程序功能是:将有10个元素的整型数组a中下标值为偶数的元素从大到小排列,其他元素不变。
请填空以使程序完整。
#define k 10main(){int a[k]={1,2,5,7,9,3,4,6,8,10},t;int i,j;for(i=0;i<k;i++)printf("%5d",a[i]);for(i=0;i<=【1】;i=i+2)for(j=i+2;j<k;j+=2)if(【2】){t=a[i];【3】;a[j]=t;}for(i=0;i<k;i++)printf("%5d",a[i]);printf("\n");}答案:=======(答案1)=======k-2=======(答案2)=======a[i]<a[j]=======(答案3)=======a[i]=a[j]请填空以使程序完整。
该程序的功能是把从键盘输入的十进制(long型)以16进制数的形式输出。
#include <stdio.h>main( ){charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F '};int c[64],d,i=0;long n;printf("Enter a number:\n");scanf("%ld",&n);do{c[i]=【1】;i++;n=【2】;}while(n!=0);printf("Transmite mew base:\n");for(--i;i>=0;--i){【3】;printf("%c",b[d]);}}答案:=======(答案1)=======n%16=======(答案2)=======n/16=======(答案3)=======d=c[i]第15题(6.0分)题号:1157阅读以下程序main(){ char *str[3]={"Fortrain ","Prolog","Pascal "};char **p;int i;p=str;for(i=0;i<3;i++,p++)printf("%c\n ",(*(*p+3)+1));}该程序第1行、第2行及最后一行的输出分别为【1】、【2】和【3】. 答案:=======(答案1)=======u=======(答案2)=======m=======(答案3)=======d以下程序使用递归方法求数组中的最大值及其下标值,请填空: #define M 10void findmax(int *a,int n,int i,int *pk){if(i<n){if(a[i]>a[*pk]) 【1】;findmax(a,n,i+1,【2】);}}main(){int a[M],i,n=0;printf("\nEnter %d data:\n",M);for(i=0;i<M;i++)scanf("%d",【3】);findmax (a,M,0,&n);printf("The maximum is: %d\n",a[n]);printf("it's index is: %d\n",n);}答案:=======(答案1)=======*pk=i=======(答案2)=======&(*pk)=======(答案3)=======a+i阅读以下程序main(){ char *str[3]={"Basic ","Visual C++","Pascal "};char **p;int i;p=str;for(i=0; i<3; i++,p++)printf("%c\n ",(*(*p+3)+1));}该程序第1行、第2行及最后一行的输出分别为【1】、【2】和【3】. 答案:=======(答案1)=======j=======(答案2)=======v=======(答案3)=======d二、单项选择共20题(共计40分)第1题(2.0分)题号:1300以下合法的赋值语句是( ).A:x=y=100B:d--;C:x+yD:c=int(a+b);答案:B第2题(2.0分)题号:1294已知字符A的ASCII码为65,则执行下列函数调用语句时,不能输出字符B的是( ).A:putchar('B');B:putchar("B");C:putchar(66);D:putchar('\x42');答案:B若以下选项中的变量已正确定义,则正确的赋值语句是( ).A:x1=86.8%3B:1+9=x2C:x3=0x1fD:x4=1+6=7答案:C第4题(2.0分)题号:1301若有声明"int x=2, y=1, z=0;",则下列关系表达式中有语法错误的是________.A:x>y=2B:z>y>xC:x>y==1D:x==(x=0, y=1, z=2)答案:A有声明int x=2;,以下表达式中值不等于8的是________.A:x+=2,x*2B:x+=x*=xC:(x+7)/2*((x+1)%2+1)D:x*7.2/x+1答案:D第6题(2.0分)题号:1307若有数组A和B的声明"static char A[ ] ="ABCDEF", B[ ] = {'A', 'B', 'C','D','E', 'F'};"则数组A和数组B的长度分别是________.A:7,6B:6,7C:6,6D:7,7答案:A以下程序运行后的输出结果是________.main( ){ char a[7]= "a0\0a0\0"; int i,j;i=sizeof(a); j=strlen(a);printf("%d %d",i,j);}A:2 2B:7 2C:7 5D:6 2答案:B第8题(2.0分)题号:990以下不正确的说法为( )A:在函数内的复合语句中定义的变量在本函数范围内有效B:在不同函数中可以使用相同名字的变量C:在函数内定义的变量只在本函数范围内有效D:形式参数是局部变量答案:A第9题(2.0分)题号:1529 以下程序运行结果( )long fun(int n){long s;if(n==1||n==2) s=2;else s=n-fun(n-1);return s;}main(){printf("%d\n",fun(3));}A:2B:1C:0D:10答案:B第10题(2.0分)题号:1312下面程序运行后的输出结果是______.main(){ char arr[2][4];strcpy(arr[0],"you");strcpy(arr[1],"me");arr[0][3]= '&';printf("%s\n",arr[0]);}A:you&meB:youC:meD:err答案:A第11题(2.0分)题号:1335以下叙述正确的是( ).A:一个用C语言编写的程序在运行时总是从main函数开始逐条执行B:main函数是系统库函数C:main函数中每行只能出现一条语句D:main函数必须出现在所用其它函数之前答案:A第12题(2.0分)题号:1331语句printf("%d",(a=2)&&(b= -2));的输出结果是( ) A:无输出B:结果不确定C:-1D:1答案:D若有函数fun的定义为void fun(…){ static int a=1;……}则下列叙述中不正确的是( ).A:在每次调用fun函数时,变量a的值是上次调用结束时a的值B:在fun函数之外,可以用变量名a直接引用a的值C:在其它函数中,可以出现声明double a=2.5;D:fun函数的形式参数不能取名为a答案:B以下程序输出结果是( )#include<stdio.h>void main(){int i,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf("%d%d%d",a[2],a[4],a[8]); }A:852B:741C:862D:369答案:C第15题(2.0分)题号:1313以下程序的输出结果是( ).{int i;for(i='A';i<=T;i++) printf("%c",i+32);printf("\n");}A:编译不通过,无输出B:ABCDEFGHC:abcdefghiD:abcdefgh答案:C第16题(2.0分)题号:1330以下关于if语句,描述错误的是( ).A:条件表达式可以是任意的表达式B:条件表达式只能是关系表达式或逻辑表达式C:条件表达式的括号不可以省略D:与else配对的if语句是其之前最近的未配对的if语句第17题(2.0分)题号:1332以下程序段循环执行的次数是( ).int k=0;while(k = 1) k++;whileA:无限次B:有语法错,不能执行C:一次也不执行D:执行1次答案:A第18题(2.0分)题号:1340以下正确的叙述是( )A:在C程序中,语句之间必须要用分号";"分隔B:若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型C:在C程序中,无论是整数还是实数,都能准确无误地表示D:在C程序中,%是只能用于整数运算的运算符答案:A第19题(2.0分)题号:2068若有以下定义,则对a数组元素的正确引用是()int a[5],*p=a;A:p+5B:*(a+2)C:a+2D:&a+1答案:B第20题(2.0分)题号:1344以下程序执行后的输出结果是( ). main( ){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf("%d\n",s);}A:自然数1~9的累加和B:自然数1~10的累加和C:自然数1~9中的奇数之和D:自然数1~10中的偶数之和答案:D。