1、,是一个特殊的运算符,叫做逗号运算符,它的一般形式为:表达式1,表达式2,求解过程为:先求解表达式1,再求解表达式2,整个表达式的值是表达式2的值,(x,y)的值为200,所以输出结果为200。 故本题答案为A。8、若执行下面的程序时从键盘上输入3和4, main() int a,b,s; scanf(%d %d,&a,&b); s=a; if(a=AchZ)?(ch+32):ch上面表达式的值是_。aZ本题的考查点是条件运算符。 条件表达式的一般形式为:表达式1?表达式2:表达式3,条件运算符的执行顺序:先求解表达式1,若非0则求解表达式2,此时表达式2的值就作为整个表达式的值,若表达式1的
2、值为0,则求解表达式3,此时表达式3的值就作为整个表达式的值。本题中,表达式1的值为1,所以整个表达式的值为表达式(ch+32)的值,即为a。10、设有以下语句,其中不是对a数组元素的正确引用的是_。(其中0i10)int a10=0,1,2,3,4,5,6,7,8,9,*p=a; ap-a *(&ai) pi *(*(a+i) ) 本题的考查点是通过指针引用数组元素。11、下面程序 int x=10,y=3;,y=x/y);的输出是_。不确定的值 C本题的考查点是除法运算。 x/y的结果约为3.33333,但是由于打印要求为整型,所以自动转换为整型(相当于截取整数位),打印结果为3。 故本题
3、答案为C。12、下面的程序中_错误(每行程序前面的数字是行号)。1 #include2 main()3 4 float a3=0.0;5 int i;6 for(i=0;i6) n-;,n);该程序的输出结果是_。98787687659876本题考查点是While语句循环次数的问题。 符合n6的n只有7,8,9;所以循环次数为3。选项C、D可以排除。又因n在输出之前要执行n-,所以输出结果只能是876。 本题答案为B。14、若变量已正确定义并赋值,下面符合C语言的表达式是_。a:=b+1a=b=c+2int 18.5%3a=a+7=c+b选项A和C显然错误;对于表达式a=a+7=c+b(答案D
4、),是先执行赋值表达式a+7=c+b,再把这个表达式的值赋给a,显然,表达式a+7=c+b非法,因为赋值表达式的左值不能为常量或表达式。15、有如下程序 float x=2.0,y; if(x0.0) y=0.0; else if(x10.0)y=1.0/x; else y=1.0;,y);该程序输出结果是_。0.0000000.2500000.5000001.000000本题考查的是IFELSE语句的使用。x=2.0,符合第二个IF语句的条件x10.0,所以执行y=1.0/x语句,即y=1.0/2.0=0.500000。 本题答案为C。16、有如下程序段int *p,a=10,b=1;p=&
5、a; a=*p+b;执行该程序段后,a的值为_。121110编译出错执行p = &后,p指向整数a,*p即p的目标变量,也就是a;所以a = *p + b等价于a = a+b,可知a的值最终为11。17、有如下程序 int n5 = 0,0,0,i,k = 2; for(i = 0; i =0;i-) ai=10-i;,a2,a5,a8);258741852369本题使循环语句给数组元素赋值。 C语言中for循环语句的一般形式为:for(表达式1;表达式2;表达式3) 语句部分;27、以下程序的输出结果是_。 int a,b; for(a=1,b=1;a=10) break; if(b%3=1
6、) b+=3; continue;,a);10165本题主要考查考生对C语言中的循环语句和程序的执行逻辑。本题中for循环语句共执行3次,所以a的值累加3次,结果为4。CONTINUE语句和BREAK语句28、以下程序的结果是_。 int a,b; void fun() a=100; b=200; int a=5,b=7; fun();%d%dn,a,b);1002005720010075局部变量和全局变量29、以下叙述中正确的是_。C语言中的文件是流式文件,因此只能顺序存取数据打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖在一个程序中当对文件进行了写操作后,必须先关闭该
7、文件然后再打开,才能读到第1个数据当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失文件的打开与关闭(FOPEN,FCLOSE)30、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是_。Voidintfloatdouble函数的类型和返回值31、有以下程序struct STU char num10; float score3; struct STU s3=20021,90,95,85, 20022,95,80,75,20023,100,95,90,*p=s; int i; float sum=0;i+) sum=sum+p-scorei;%6.2fn,sum);程序运
8、行后的输出结果是_。260.00270.00280.00285.0032、有以下程序 int p7=11,13,14,15,16,17,18,i=0,k=0; while(i7&pi%2)k=k+pi; i+;,k);执行后输出的结果是_。5856452433、设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是_。x=x*100+0.5/100.0;x=(x*100+0.5)/100.0x=(int)(x*100+0.5)/100.0;x=(x/100+0.5)/100.0;表达式语句,空语句,复合语句34、有以下程序 int i,s=0; f
9、or(i=1;10;i+=2) s+=i+1;自然数19的累加和自然数110的累加和自然数19中奇数之和自然数110中偶数之和FOR循环结构35、若程序中定义了以下函数double myadd(double a,double b)return(a+b);并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是_。double myadd(double a, b);double myadd(double,double);double myadd(double b, double a);double myadd(double x, double y);对函数的“定义”和“说明
10、”不是一回事。“定义”是指对函数功能的确立,包括指定函数名,函数值类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位。而“说明”则是对已定义的函数的返回值进行类型说明(或称“申明”),它只包括函数名、函数类型、以及一个空的括弧,不包括形参和函数体。对被调函数进行说明的作用是告诉系统:在本函数中将要用到的某函数是XX类型。也就是说明该函数的返回值的类型,以便在主调函数中按此类型对函数值作相应的处理。 本题选项A中,对变量b的类型没有说明,默认的为整型,不合题意。36、下面程序的功能是输出以下形式的金字塔图案: * * * * int i,j;=4; for(j=1;j=4-i;j+)p
11、rintf( ); for(j=1;=_;*n在下划线处应填入的是_。i2*i-12*i+1i+2循环的嵌套37、请选出以下程序的输出结果_。 #include sub(int x,int y,int * z) *z=y-x; main() int a,b,c; sub(10,5,&a);sub(7,a,&sub(a,b,&c);%d,%d,%dn,a,b,c);5,2,3-5,-12,-7-5,-12,-175,-2,-7用指针作函数参数38、请选出以下程序段的输出结果_。 #define MIN(x,y) (xy)?x:y int i,j,k; i=10;j=15; k=10*MIN(i,
12、j);15150宏定义:不带参数的宏定义;带参数的宏定义39、设有如下的程序段 char str=Hello char *ptr; ptr=str;执行完上面的程序段后,*(ptr+5)的值为_。o0的地址 字符串与字符数组本题的考查点是字符数组的结束标志。 ptr=str实际上是将串str的首地址赋给了指针变量ptr,所以ptr+5将指向str串的第六个数组元素,即是串的隐含结束标志,*(ptr+5)=,最后的结果为。40、已有定义:char c;,程序前面已在命令中包含ctype.h文件。不能用于判断c中的字符是否为大写字母的表达式是_。isupper(c)=c=c&c=(z-32)&(a
13、-32)=cC运算符的种类、运算优先级和结合性41、下面程序的输出是_。int m=13;int fun2(int x,int y) int m=3; return(x*y-m); main( ) int a=7,b=5;,fun2(a,b)/m);7本题的考查点是函数的调用。 函数fun2()的作用是将形参x和y的值相乘后-3,在fun2()中的变量m是一个局部变量,它的值在fun2()函数内有效,在主函数中的m指的是全局变量,其值为13,所以fun2(a,b)/m的值为(7*5-3)/13,即2。42、有以下程序#include int fun(char s) int n=0; while
14、(*s0) n=10*n+*s-s+; return(n); char s10= 6, 1,*4,fun(s);程序的运行结果是_。96149061本题考查的是指针的应用。 本题主函数中定义了一个字符型数组s,当调用fun函数时,将字符型数组s的地址指向形参字符数组s,则形参与实参共用占同一存储单元,其值也相等。 在函数fun中,第一次执行while循环时,*s=,所以while(*s)成立,执行n=10*n+*s- 即n=10*0+-,其中字符和均代入ASCII码进行运算,所以n=6;s+表示指针变量s后移一位,即*s=由于前一次循环执行后的n的值为6,此时的等式为(n=10*6+),故n=
15、61;指针变量继续后移一位,*s=)不成立,返回n=61的值。故本题程序输出结果是61。43、以下函数返回a所指数组中最小值所在的下标值。 fun(int *a,int n) int i,j = 0,p; p = j; for( i = j; n; j+) if(ai 2) return (fib(n-1) + fib(n - 2); else return (2);,fib(3);8函数的正确调用,嵌套调用,递归调用45、若fp是指向某文件的指针,且已读到此文件的末尾,则函数feof(fp)的返回值是_。EOF非零值NULL本题的考查点是文件结束符的返回值问题。 函数feof是用来判断文件是否已读到末尾,如果已读到末尾则返回非零值,否则返回0。文件的读写,文件的定位46、有如下程序int func(int a, int b) return(a+b); int x=2,y=5,z=8,r; r=func(func(x,y),z);,r);该程序的输
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1