资源描述
第二章:C语言概述1.以下()是不正确的转义字符。A. B. C.020 D.02.构成C语言程序的基本单位是()。A.函数B.变量C.子程序D.语句3.C语言规定:在一个源程序中,main( )函数的位置(C)。A.必须在最开始 B.必须在系统调用的库函数后面C.可以任意 D.必须在最后4.为求出return语句返回计算100!的结果,此函数的类型说明应为(D)。A.int B.long C.unsigned long D.选项A,B,C.都不对:ABC的数值范围都不够5.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符(C)。A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种6.以下选项中合法的用户标识符是(D)。A.int B.a# C.5mem D._2437.C语言中的简单数据类型有(C)。A.整型、实型、逻辑型 B.整型、字符型、逻辑型C.整型、实型、字符型 D.整型、实型、字符型、逻辑型8.以下选项中不正确的整型常量是(B)。A.-37 B.32,758 C.326 D.69.以下选项中合法的C语言字符常量是(A)。A.t B.A C.67 D. A10.以下选项中不正确的实型常量是(A)。A.123 B.1e4 C.3.640E-1 D.0.3511.以下选项中合法的C语言赋值语句是(D)。A.a=b=34 B.a=34,b=34 C.-i; D.m=(int)(x+y);12.设int类型的数据长度为两个字节,则unsigned int类型数据的取值范围是(B)。A.0255 B.065535 C.-3276832767 D.-256255第三章:运算符与表达式 (原先给的答案很多错误)1.以下叙述中不正确的是(B)。A.在C程序中,是只能用于整数运算的运算符B.在C程序中,无论整数还是实数,都能准确无误地表示C.若a 是实型变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值D.以上表述都是正确的2.若变量x、y、z均为double类型且已正确赋值,不能正确表示x/yz的C语言表达式是(A)。A.x/y*z B.x*(1/(y*z) C.x/y*1/z D.x/y/z3.设a、b、c、d、m、n均为 int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=ab)&(n=cd)运算后,n的值为(C)。A.0 B.1 C.2 D.34.设w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m=(wx)? w:x;m=(my)?m:y;m=(mz)?m:z;则该程序运行后,m的值是(D)。A.4 B.3 C.2 D.15.以下程序的输出结果是(C)。#include main( )int a=5,b=4,c=6,d; printf(%dn,d=ab?(ac?a:c):(b);A.5 B.4 C.6 D.不确定6.在C语言中,如果下面的变量都是int类型,则输出的结果是(A)。sum=pad=5; pad=sum+ ,pad+ ,+pad;printf(%dn,pad);A.7 B.6 C.5 D.47.以下程序的输出结果是(B)。#include main( )int i=010 , j=10; printf(%d,%dn,+i , j-); A.11,10 B.9,10 C.010,9 D.10,98.已知int i;float f;,由以下选项中正确的语句是(D)。A.(int f)%i; B.int(f)%i; C.int(f%i); D.(int)f%i;9.若有定义:int x=3 ,y=2; float a=2.5 ,b=3.5; 则下面表达式的值为(B)。(x+y)%2+(int)a/(int)bA.1.0 B.1 C.2.0 D.210.假设所有变量均为整型,则表达式 (a=2,b=5,a+,b+,a+b)的值为(C)。A.7 B.8 C.9 D.1011.若有定义int x=1, y=1;, 表达式(!x|y-)的值是(B)。A.0 B.1 C.2 D.-112.有以下程序:main( )unsigned char a,b,c; a=0x3; b=a | 0x8; c=b1; printf(%d %dn,b,c);程序运行后的输出结果是(D)。A.-1112 B.-6-13 C.1224 D.112213.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是(C)。A.1 B.2 C.2.0 D.2.514.执行以下程序段后,c3的值为(A)。int c1=1,c2=2,c3;c3=1.0/c2*c1;A.0 B.0.5 C.1 D.215.以下程序的输出结果是(D)。#include main( )int y=3,x=3,z=1; printf(%d %dn,(+x,y+),z+2);A.34 B.42 C.43 D.33第四章:基本语句1.以下选项中不是C语句的是 C 。A)int i;i+;printf(%dn,i); B);C)a=5,c=10 D) ; 2执行以下程序时输入1234567,程序的运行结果为 B 。#include main() int x,y;scanf(%2d%2ld,&x,&y);printf(%dn,x+y);A)17 B)46 C)15 D)93若有定义char a;int b;float c;double d;,则表达式a*b+c-d结果为型 A 。A)double B)int C)float D)char4若有定义int a,b;,则用语句scanf(%d%d,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是 A 。A), B)空格 C)回车 D)【Tab】键5.运行下面的程序,如果从键盘上输入: abc def则输出结果为 C 。#define N 6#include main() char cN;int i=0;for( ;iN;ci=getchar(),i+);for( i=0;iN;i+) putchar(ci); printf(n);A)abcdefB)abcdC)abcdD)abcdef6以下程序的输出结果是 A 。#include main() printf(%f,2.5+1*7%2/4);A)2.500000 B)2.750000 C)3.375000 D)3.0000007根据定义和数据的输入方式,输入语句的正确形式是 B 。已有定义:float f1,f2;数据的输入方式:4.523.5A)scanf(%f,%f,&f1,&f2); B)scanf(%f%f,&f1,&f2);C)scanf(%3.2f%2.1f,&f1,&f2); D)scanf(%3.2f,%2.1f,&f1,&f2);8以下程序不用第3个变量,实现将两个数进行对调的操作,请填空。#include main() int a,b;scanf(%d%d,&a,&b);printf(a=%d b=%d,a,b);a=a+b;b=a-b;a= B ;printf(a=%d b=%dn,a,b);A)a+b B)a-b C)b*a D)a/b第五章:选择结构1.以下选项中,能正确表示a10或a0的关系表达式是_D_。A)a=10 or a=10|a=10&a=10 |a=02. 假定所有变量均已正确定义,下列程序段运行后x的值是_B_。a=b=c=0;x=35;if(!a) x-; else if(b);if(c) x=3; else x=4;A)34 B)4 C)35 D)33.以下程序的输出结果_A_。#include main() int a,b,c=246;a=c/100%9;b=(-1)&(-1);printf(%d,%dn,a,b);A)2,1 B)3,2 C)4,3 D)2,-14.已知a=1、b=3、c=5、d=5,下列程序段运行后,x的值是_B_。if(ab)if(cd)x=1;elseif(ac)if(b=0|b=0)&(a0|b=0&b=0)&(a0&b0)&(a+b06. 以下程序的输出结果是_C_。#include main() int a=-1,b=1;if(+a0)& ! (b- =0)printf(%d %dn,a,b);elseprintf(%d %dn,b,a);A)-11 B)01 C)10 D)007.下列关于switch语句和break语句的结论中,正确的是_B_。A)break语句是switch语句中的一部分B)在switch语句中可以根据需要使用或不使用break语句C)在switch语句中必须使用break语句D)break语句只能用于switch语句中8. 若有定义int a=1,b=0;,则执行以下语句后,输出为_B_。switch(a) case 1:switch (b) case 0: printf(*0*); break;case 1: printf(*1*); break;case 2: printf(*2*); break;A)*0* B)*0*2*C)*0*1*2* D)有语法错误9. 以下程序的输出结果是_A_。#include main() int x=1,a=0,b=0;switch(x) case 0: b+;case 1: a+;case 2: a+;b+;printf(a=%d,b=%dn,a,b);A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=210. 以下程序的输出结果是_C_。#include main() int a=12,b=5,c=-3;if(ab)if(b0) c=0;else c+;printf(%dn,c);A)0 B)1 C)-2 D)-311. 阅读以下程序:#include main() int x;scanf(%d,&x);if(x-5)printf(%d,x);else printf(%d,x+);程序运行后,如果从键盘输入5,则输出结果是_B_。A)3 B)4 C)5 D)612. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是_A_。#include main( )int x;scanf(%d,&x);if(x+5)printf(%d,x);else printf(%dn,x-);A)7和5 B)6和3 C)7和4 D)6和4第6章循环结构1.在while(x)语句中的x与下面条件表达式等价的是。DA)x=0 B)x=1 C)x!=1 D)x!=02.以下程序的输出结果是。D#include main()int k,j,m;for (k=5;k=1;k-) m=0;for (j=k;j=5;j+)m=m+k*j;printf (%dn,m);A)124 B)25 C)36 D)153.以下程序的输出结果是。D#include main() int x=10,y=10,i;for (i=0;x8;y=+i)printf(%d %d,x-,y);A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 14.以下程序的输出结果是。Aa=1;b=2;c=2;while(abc) t=a; a=b; b=t; c-;printf (%d,%d,%d,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,15.以下for循环体的执行次数是。C#include main()int i,j;for(i=0,j=1; i=j+1; i+=2, j-)printf(%dn,i);A)3 B)2 C)1 D)06.有以下程序:#include main() int n=9;while(n6)n-;printf(%d,n);该程序段的输出结果是。BA)987 B)876 C)8765 D)98767.有以下程序段:Aint k=0;while(k=1)k+;while 循环执行的次数是。A)无限次 B)有语法错,不能执行C)一次也不执行 D)执行一次8.以下程序中,while循环的循环次数是。D#include main() int i=0;while(i10) if(i1) continue;if(i=5) break;i+;A)1 B)10 C)6 D)死循环,不能确定次数9.以下程序的输出结果是。B#includemain() int i=0,a=0;while(i20) for(;) if(i%10)=0)break;elsei-;i+=11;a+=i;printf(%dn,a);A)21 B)32 C)33 D)1110.语句while(!E);中的条件!E等价于。AA)E=0 B)E!=1 C)E!=0 D)E11.以下的for循环。Cfor(x=0,y=0; (y!=123)&(x4); x+ );A)是无限循环 B)循环次数不定 C)循环执行4次 D)循环执行3次12.执行以下程序段的结果是。Bint x=23;do printf(%d,x-);while(!x);A)打印出321 B)打印出23 C)不打印任何内容 D)陷入死循环第7章:数组1有以下程序:#include #include main() char a =a,b,c,d, e, f, g,h,0; int i,j;i=sizeof(a); j=strlen(a);printf(%d,%dn,i,j);程序运行后的输出结果是。DA)9,9 B)8,9 C)1,8 D)9,82以下程序中函数reverse()的功能是将a所指数组中的内容进行逆置存放。#include void reverse(int a ,int n) int i,t;for(i=0;in/2;i+) t=ai; ai=an-1-i;an-1-i=t;main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0;reverse(b,8);for(i=6;i10;i+)s+=bi;printf(%dn,s);则程序运行后的输出结果是。AA)22 B)10 C)34 D)303.有以下程序:main(int argc,char*argv) int n,i=0;while(argv1i!=0) n=fun();i+;printf(%dn,n*argc);int fun() static int s=0;s+=1;return s;假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行exam 123则运行结果为。AA)6 B)8 C)3 D)44以下程序的输出结果是。A# include # include main() char str12=s,t,r,i,n,g;printf(%dn,strlen(str); A)6 B)7 C)11 D)125若有说明:int a34;,则对数组a元素非法引用的是。DA)a02*1 B)a13 C)a4-20 D)a046若有说明:int a4=0,0;,则以下选项中,不正确的是。DA)数组a的每个元素都可得到初值。B)二维数组a的第一维大小为1C)因为二维数组a中初值的个数不能被第二维大小的值整除,则第一维的大小等于所得商数再加1,故数组a的行数为1D)只有元素a00和a01可得到初值0,其余元素均得不到初值07以下程序中有错误的一行是。D(1)main()(2)(3)int a3=1;(4)int i;(5)scanf(%d,&a);(6)for(i=1;i3;i+) a0=a0+ai;(7)printf(%fn,a0);(8)A)3 B)6 C)7 D)58若有说明:int a3=1,2,3,4,5,6,7;,则a数组第一维的大小是。BA)2 B)3 C)4 D)无确定值9若有数组定义: char array =China;,则数组 array所占的空间为。CA)4个字节 B)5个字节 C)6个字节 D)7个字节10以下程序的输出结果是。A#include #include string.hmain () char arr24;strcpy(arr,you); strcpy(arr1,me);arr03=&;printf(%sn,arr);A)you&me B)you C)me D)err11有以下程序:#include main() int n5=0,0,0,i,k=2;for(i=0;ik;i+)ni=ni+1;printf(%dn,nk);该程序的输出结果是。DA)不定值 B)2 C)1 D)012以下程序的输出结果是。A#include main() int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i3;i+)for(j=0;ji;j+)s+=aij;printf(%dn,s);A)14 B)19 C)20 D)2113当执行以下程序时,如果输入ABC,则输出结果是。A#include #include main() char ss10=1,2,3,4,5;gets(ss); strcat(ss, 6789); printf(%sn,ss);A)ABC6789 B)ABC67 C)12345ABC6 D)ABC45678914以下程序的输出结果是。A#include f(int b,int m,int n) int i,s=0;for(i=m;in;i=i+2)s=s+bi;return s;main() int x,a=1,2,3,4,5,6,7,8,9;x=f(a,3,7);printf(%dn,x);A)10 B)18 C)8 D)1515以下程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。#include void sort(int a,int n) int i,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj)t=ai;ai=aj;aj=t;main() int aa10=1,2,3,4,5,6,7,8,9,10,i;sort(&aa3,5);for(i=0;is2) B)if(strcmp(s1,s2) C)if(strcmp(s2,s1)0) D)if(strcmp(s1,s2)0)19以下程序的输出结果是。A#include main() char ch7=12ab56;int i,s=0;for(i=0;chi=0&chi=9;i+=2)s=10*s+chi-0;printf(%dn,s);A)1 B) 1256 C)12ab56 D)120当运行以下程序时,从键盘输入:AhaMA空格 Aha,则程序的输出结果是。A#include main() char s80,c=a;int i=0;scanf(%s,s);while(si!=0) if(si=c) si=si-32;else if(si=c-32) si=si+32;i+;puts(s);A)ahAMa B)AbAMa C)AhAMa空格ahA D)ahAMa空格ahA操作题:1. 下列给定程序中,函数fun( )的功能是:将形参a所指数组中的前半部分元素中的值与后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。例如:若a所指数组中的数据为:1、2、3、4、5、6、7、8、9,则调换后为:6、7、8、9、5、1、2、3、4。请在空白处填入正确内容,使程序得出正确的结果。(源程序在考生文件夹WEXAM00000000下)不得增行或删行,也不得更改程序的结构!#include #define N 9void fun(int a , int n)int i, t, p;p=(n%2=0)?n/2:n/2+ 1;for(i=0;in/2;i+) t=ai;ai=ap+ i;ap+i=t;main() int bN=1, 2, 3, 4, 5, 6, 7, 8, 9,i;printf(nThe original data:n);for (i=0;iN;i+)printf(%4d,bi);printf(n);fun(b,N);printf(nThe data after moving:n);for (i=0;iN;i+)printf(%4d,bi);printf(n);第八章函数1以下函数值的类型是。Afun ( float x ) float y;y= 3*x-4;return y;A)int B)不确定 C)void D)float2以下程序的输出结果是。B#include int a, b;void fun() a=100; b=200; main() int a=5, b=7;fun();printf(%d%dn, a,b);A)100200 B)57 C)200100 D)753以下程序的输出结果是。C#include int x=3;main() int i; for (i=1;ix;i+)incre();incre() static int x=1;x*=x+1;printf(%d,x);A)33 B)22 C)26 D)254以下程序的输出结果是。B#include int f(int n) if(n=1)return 1;else return f(n-1)+1;main() int i,j=0;for(i=1;i3;i+)j+=f(i);printf(%dn,j);A)4 B)3 C)2 D)15以下程序的输出结果是。A#include int d=1;fun (int p) int d=5;d+=p+;printf(%d ,d);main( ) int a=3;fun(a);d+=a+;printf(%dn,d); A)84 B)96 C)94 D)856函数调用 strcat(strcpy(str1,str2),str3)的功能是。CA)将字符串str1复制到字符串str2中后再连接到字符串str3之后B)将字符串str1连接到字符串str2之后再复制到字符串str3之后C)将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后D)将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中7.有如下程序:int sub(int n) if(n12) return 3;return 1;if(n5) return 2;main() int a=10;printf(%dn,sub(a);该程序的输出结果是。BA)0 B)1 C)2 D)38以下程序的输出结果是。C#include int d=1;fun(int p) static int d=5;d+=p;printf(%d ,d);return(d);main() int a=3;printf(%dn,fun(a+fun(d);A)699 B)669 C)61515 D)66159在一个源文件中定义的外部变量的作用域为。DA)本文件的全部范围 B)本程序的全部范围C)本函数的全部范围 D)从定义该变量的位置开始至本文件结束10.以下叙述中正确的是。BA)全局变量的作用域一定比局部变量的作用域范围大B)静态(static)类别变量的生存期贯穿于整个程序的运行期间C)函数的形参都属于全局变量D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值11以下对C语言函数的描述中,正确的是。AA)C程序由一个或一个以上的函数组成 B)C函数既可以嵌套定义又可以递归调用C)函数必须有返回值,否则不能使用函数 D)C程序中调用关系的所有函数必须放在同一个程序文件中12.C语言中形参的默认存储类别是。AA)自动(auto) B)静态(static) C)寄存器(register) D)外部(extern)13以下叙述中不正确的是。BA)在C语言中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B)在C函数中,最好使用全局变量C)在C语言中,形式参数只是局限于所在函数D)在C语言中,函数名的存储类别为外部14C语言中函数返回值的类型由决定。DA)return语句中的表达式类型 B)调用函数的主调函数类型C)调用函数时的临时类型 D)定义函数时所指定的函数类型15C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是。CA)地址传递 B)由实参传给形参,并由形参返回给实参C)值传递 D)由用户指定传递方式16在C语言中。DA)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义和调用均可以嵌套C)函数的定义和调用均不可以嵌套D)函数的定义不可以嵌套,但函数的调用可以嵌套17以下函数调用语句中,含有的实参个数是。Afun(x+y,(e1,e2),fun(xy,d,(a,b);A)3 B)4 C)6 D)818以下程序的输出结果是。C#include fun(int x) static int a=3;a+=x;return(a);main() int k=2,m=1,n;n=fun(k);n=fun(m);printf(%d,n);A)3 B)4 C)6 D)919以下程序的输出结果是。D#include int func(int a,int b)return(a+b);main( ) int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(%dn,r);A)12 B)13 C)14 D)15第9章指针1在说明语句:int *f();中,标识符f代表的是。DA)一个用于指向整型数据的指针变量 B)一个用于指向一维数组的行指针C)一个用于指向函数的指针变量 D)一个返回值为指针型的函数名2以下程序的输出结果是。A#include #include main() char *p=abcde0fghjik0;printf(%dn,strlen(p);A)12 B)15 C)6 D)53设有以下语句,则不是对a数组元素的正确引用,其中0i10。Dint a10=0,1,2,3,4,5,6,7,8,9, *p=a;A)ap-a B)*(&ai) C)pi D)*(*(a+i)4.以下程序段的输出结果是。Aint *var,ab;ab=100;var=&ab;ab=*var+10;printf(%dn,*var);A)110 B)100 C)0 D)出现错误5设有如下的程序段:Bchar str =Hello;char *ptr;ptr=str;执行上面的程序段后,*(ptr+5)的值为。A)o B)0 C)不确定的值 D)o的地址6.若有以下定义和语句:A#includeint a=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;则以下选项中错误的语句是。A)*q=0; B)w=p; C)*p=a; D)*p=*w;7下面函数的功能是。Bsss(s, t)char *s, *t; while(*s)&(*t)&(*t+= *s+);return(*s-*t);A)求字符串的长度 B)比较两个字符串的大小C)将字符串s复制到字符串t中 D)将字符串s接续到字符串t中8.有以下程序:#includemain() char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf(%s%s,p,q);printf(%s%sn,p,q);若从键盘输入:abc def,则输出结果是。AA)def def B)abc def C)abc d D)d d9. 若有以下说明和定义:typedef int *INTEGER;INTEGER p,*q;以下叙述正确的是。BA)p是int型变量 B)p是基类型为int的指针变量C)q是基类型为int的指针变量 D)程序中可用INTEGER代替int类型名10说明语句int *(*p)();的含义是。DA)p是一个指向int型数组的指针B)p是指针变量,它构成了指针数组C)p是一个指向函数的指针,该函数的返回值是一个整型D)p是一个指向函数的指针,该函数的返回值是一个指向整型的指针11已知char *p,*q;,选择正确的语句。CA)p*=3; B)p /=q; C)p+=3; D)p+=q;12已知int i,x34;,则不能将x11的值赋给变量i的语句是。CA)i=*(*(x+1)+1); B)i=x11;C)i=*(*(x+1); D)i=*(x1+1);13下列程序的输出结果是。B#include int b=2;int func(int *a) b += *a; return (b);main() int a=2, res=2;res += func(&a);printf(%d n,res);A)4 B)6 C)8 D)1014有如下程序段:int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为。BA)12 B)11 C)10 D)编译出错15对于基类型相同的两个指针变量之间,不能进行的运算是。CA) B)= C)+ D)-16如下程序的输出结果是。C#include main() char ch25=6937,8254,*p2;int i,j,s=0;for(i=0;i2;i+) pi=chi;for(i=0;i0;j+=2)s=10*s+pij-0;printf(%dn,s);A)69825 B)63825 C)6385 D)69382517当调用函数时,实参是一个数组名,则向函数传递的是。BA)数组的长度 B)数组的首地址C)数组每一个元素的地址 D)数组每个元素中的值18若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入3个整数分别赋给变量a、b、c的语句是。AA)scanf(%d%d%d,&a,&b,d); B)scanf(%d%d%d,&a,&b,&d);C)scanf(%d%d%d,a,b,d); D)scanf(%d%d%d,a,b,*d);19若定义:int a=511,*b=&a;, 则printf(%dn,*b);的输出结果为。DA)无确定值 B)a的地址 C)512 D)511第10章编译预处理和动态存储分配1.对下面程序段,正确的判断是。B#define A 3#define B(a) (A+1)*a)x=3*(A+B(7);A)程序错误,不许嵌套宏定义 B)x=93C)x=21 D)程序错误,宏定义不许有参数2.以下程序的输出结果为。B#include #define F(y) 3.84+y#define PR(a) printf(%d,(int)(a)#define PRINT(a) PR(a); putchar(n)main() int x=2;PRINT(F(3)*x);A)8 B)9 C)10 D)113.以下说法中正确的是。CA)#define和printf都是C语句 B)#define是C语句,而printf不是C)printf是C语句,但#define不是 D)#define和printf都不是C语句4.以下程序的输出结果是。C#define f(x) x*x#include main()int a=6,b=2,c;c=f(a)/ f(b);printf(%d n,c);A)9 B)6 C)36 D)185.以下程序运行后,输出结果是。B#define PT 5.5#define S(x) PT*x *x#include main()int a=1,b=2;printf(%4.1fn,S(a+b);A)49.5 B) 9.5 C)22.0 D)45.06.下列程序执行后的输出结果是。B#define MA(x) x*(x-1)#include main() int a=1,b=2;printf(%d n,MA(1+a+b);A)6 B)8 C)10 D)127.有如下程序:#define N 2#define M N+1#define NUM 2*M+1main() int i;for(i=1;i=NUM;i+) printf(%dn,i);该程序中的for循环执行的次数是。CA)5 B)6 C)7 D)88.程序中头文件typel.h 的内容是:#define N 5#define M1 N*3程序如下:#include type1.h#define M2 N*2main() int i;i=M1+M2;printf(%dn,i);程序编译后运行的输出结果是。CA)10 B)20 C)25 D)309.以下正确的描述为。CA)每个C语言程序必须在开头使用预处理命令#include B)预处理命令必须位于C源程序的首部C)在C语言中预处理命令都以#开头D)C语言的预处理命令只能实现宏定义和条件编译的功能10.从下列选项中选择不会引起二义性的宏定义是。DA)#define POWER(x)x*x B)#define POWER(x)(x)*(x)C)#define POWER(x)(x*x) D)#define POWER(x)(x)*(x)11.设有以下宏定义:#define N 3#define Y(n) (N+1)*n)则执行语句z=2 * (N+Y(5+1);后,z的值为。CA)出错 B)42 C)48 D)5412.若有宏定义#define MOD(x,y) x%y,则执行以下语句后的输出为。Bint z, a=15,b=100;z=MOD (b,a);printf(%dn,z+);A)11 B)10 C)6 D)宏定义不合法13.以下程序的输出结果是 D#includeint a33=1,2,3,4,5,6,7,8,9,*p;main()p=(int*)malloc(sizeof(int);f(p,a);printf(%d n,*p);free(p);f(int *s, int p3) *s=p11; A)1 B)4 C)7 D)5第11章结构体与共用体1在16位的PC机上使用C语言,若有如下定义:Dstruct data int i;char ch;double f; b;则结构变量b占用内存的字节数是。A)1 B)2 C)8 D)112设有以下说明和定义语句,则下面表达式中值为3的是。Dstruct s int i;struct s *i2;static struc
展开阅读全文