《c语言考题分析 .pdf》由会员分享,可在线阅读,更多相关《c语言考题分析 .pdf(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C 语句基础1. 以下叙述中正确的是 c A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用 C语言编写的程序只能放在一个程序文件中2. 以下选项中不合法的标识符是 c A)print B)FOR C)&a D)_00 3. 以下选项中不属于字符常量的是 b A)C B)C C)xCC0 D)072 4. 设变量已正确定义并赋值,以下正确的表达式是 c 说的是表达式 , 不是语句A)x=y*5=x+z B)int(15.8%5) C)x=y+z+5,+y D)x=25%5.0 5. 以下定义
2、语句中正确的是 bd A)int a=b=0 ; B)char A=65+1,b=b; C)float a=1,*b=&a,*c=&b ; D)double a=0.0,b=1.1; 6. 有以下程序段char ch; int k; ch=a; k=12; printf(%c,%d,ch,ch,k); printf(k=%dn,k); 已知字符 a 的 ASCll 十进制代码为 97,则执行上述程序段后输出结果是 d A)因变量类型与格式描述符的类型不匹配输出无定值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
3、 - - - - - - 第 1 页,共 36 页 - - - - - - - - - B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12 D)a,97,k=12 7. 已知字母 A的 ASC 代码值为 65,若变量 kk 为 char 型,以下不能正确判断出kk 中的值为大写字母的表达式是 b A)kk=A&kk=Akk=a&(kk+32)=z D)isalpha(kk)&(kk=2&c=2&c=2&cb)a=b,b=c,c=a; printf(a=%d b=%d c=%dn ,a,b,c); 程序的输出结果:A) a=10 b=50 c=10 B) a=10 b=
4、50 c=30 C)a=10 b=30 c=10 D)a=50 b=30 c=50 15. 以下叙述中正确的是 C A)C程序的基本组成单位是语句 B)C程序中的每一行只能写一条语句C)简单 C语句必须以分号结束 D)C语句必须在一行内写完16. 计算机能直接执行的程序是 D A)源程序 B )目标程序 C )汇编程序 D )可执行程序17. 以下选项中不能作为C语言合法常量的是 A A) cd B) 0.1c+6 C)a D) 011 18. 以下选项中正确的定义语句是 C A)double a;b; B) double a=b=7 C)double a=7,b=7; D)double,a,
5、b; 19. 以下不能正确表示代数式2ab/cd 的 C语言表达式是 D A)2*a*b/c/d B)a*b/c/d*2 C)a/c/d*b*2 D)2*a*b/c*d 20.C 源程序中不能表示的数制是A A)二进制 B)八进制 C )十进制 D )十六进制21. 若有表达式 (w)?(-x):(+y),则其中与 w等价的表达式是 D A)w=1 B )w=0 C)w!=1 D)w!=0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 36 页 - - - - - -
6、- - - 22. 执行以下程序段后, w的值为 C int w=A,x=14,y=15;W=(x|y)&(w a);A) -1 B) NULL C)1 D) 0 23. 若变量已正确定义为int 型,要通过语句scanf( %d,%d,%d ,&a,&b,&c); 给 a 赋值 1、给 b 赋值 2、给 c 赋值 3,以下输入形式中错误的是(u 代表一个空格符)A)uuu1,2,3 B)1u2u3 B C)1,uuu2,uuu3 D)1,2,3 24. 设变量 a和 b已正确定义并赋初值。请写出与 a-=a+b等价的赋值表达式( a=-b ) 。25. 若整型变量 a 和 b 中的值分别为
7、7 和 9,要求按以下格式输出a 和 b 的值:a=7 b=9 请完成输出语句 printf(a=%dnb=%dn ,a,b); 选择结构1. 若变量已正确定义,有以下程序段int a=3,b=5,c=7; if(ab) a=b; c=a; if(c!=a) c=b; printf(%d,%d,%dn,a,b,c); 其输出结果是 b A)程序段有语法错 B)3 ,5,3 C)3 ,5,5 D)3 ,5,7 2. 有以下程序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共
8、36 页 - - - - - - - - - #include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(“a=%d,b=%dn”,a,b); 程序的运行结果是 d A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 3. 有以下程序#include main() int x=1,y=2,z=3; if(xy) if(yz) pri
9、ntf(%d ,+z); else printf(%d ,+y); printf(%dn,x+); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 36 页 - - - - - - - - - D 程序运行的结果是A) 331 B)41 C)2 D)1 4. 以下选项中与 if(a=1) a=b;else a+;语句功能不同的 switch 语句是: B A、switch (a) B、switch (a=1) case 1:a=b;break; case 0 : a=b;
10、break; default : a+; case 1 : a+; C、switch (a) D、switch (a=1) default : a+;break; case 1:a=b;break; case 1:a=b; case 0: a+; 5. 有如下嵌套的 if语句 if(ab) if(ac) k=a; else k=c; else if(bc) k=b; else k=c; 以下选项中与上述if语句等价的语句是C A、k=(ab)?a:b;k=(bc)?b:c; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
11、心整理 - - - - - - - 第 7 页,共 36 页 - - - - - - - - - B、k=(ab)?(bc)?a:b):(bc)?b:c); C、k=(ab)?(ac)?a:c):(bc)?b:c); D、k=(ab)?a:b;k=(ac)?a;c 循环结构1. 有以下程序#include main() int x=8; for( ; x0; x-) if(x%3) printf(“%d,”,x -); continue; printf(“%d,”,-x); 程序的运行结果是 d A)7,4,2 B)8,7,5,2 C)9,7,6,4 D)8,5,4,2 2. 以下不构成无限循
12、环的语句或者语句组是 a A)n=0; B )n=0; do+n;while(n=0); while(1)n+; C)n=10; D)for(n=0,i=1; ;i+) n+=i; while(n);n-; 3. 以下程序段中的变量已正确定义 d for(i=0;i4;i+,j+) for(k=1;k3;k+); printf(*); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 36 页 - - - - - - - - - 程序段的输出结果是A)* B)* C)* D
13、)* 4. 有以下程序#include main() char *s=ABC; do printf(%d,*s%10);s+; while (*s); 注意: 字母 A的 ASCII 码值为 65。程序运行后的输出结果是c A)5670 B)656667 C)567 D)ABC 5. 设变量已正确定义, 以下不能统计出一行中输入字符个数(不包含回车符 ) 的程序段是 d A)n=0;while(ch=getchar()!= n)n+;B)n=0; while(getchar()!= n)n+;C)for(n=0;getchar()!= n;n+);名师资料总结 - - -精品资料欢迎下载 -
14、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 36 页 - - - - - - - - - D)n=0;for(ch=getchar();ch!= n;n+);6. 有以下程序 D #include main() int i,j; for (i=3;i=1;i-) for(j=1;j=2;j+) printf(%d ,i+j); pintf(n ); 程序运行的结果是A) 2 3 4 B) 4 3 2 C)2 3 D) 4 5 3 4 5 5 4 3 3 4 3 4 4 5 2 3 7. 有以下程序#include
15、 main() int i=5; do if(i%3=1) if(i%5=2) printf(%d ,i); break; i+; while(i!=0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 36 页 - - - - - - - - - printf(n ); 程序运行的结果是 A A) *7 B)*3*5 C)*5 D)*2*6 8. 以下程序的输出结果是( 1 )#include main() int I,j,sum; for(i=3;i=1;i-)
16、sum=0; for(j=1;j=I;j+) sum+=i*j; printf(%dn,sum); 数组1. 若有定义语句: double x5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引用 x 数组元素的是 B A) *p B) x5 C)*(p+1) D) *x 2. 若有以下定义语句: int m=5,4,3,2,1,i=4;,则下面对 m数组元素的引用中错误的是 C A)m-i B)m2*2 C)mm0 D)mmi 3. 有以下程序#include int fun(int (*s)4,int n,int k) int m,i; 名师资料总结 - - -精品资料欢迎下载
17、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 36 页 - - - - - - - - - m=s0k; for(i=1;im)m=sik; return m; main() int a44=1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34; printf(%dn,fun(a,4,0); 程序运行的结果是C A) 4 B) 34 C) 31 D)32 4. 以下程序按下面指定的数据给x 数组的下三角置数 , 并按如下形式输出 , 请填空。4 3 7 2 6 9 1 5 8
18、 10 #include main() int x44,n=0,i,j; for(j=0;j=j; _i-_) n+;xij= _n_; for(i=0;i4;i+) for(j=0;j=i;j+) printf(%3d ,xij); print(n ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 36 页 - - - - - - - - - 5. 有以下程序#include main() int a =1,2,3,4,y,*p=&a3; - p; y=*p; p
19、rintf(“y=%dn”,y); 程序的运行结果是 d A)y=0 B)y=1 C)y=2 D)y=3 6. 以下错误的定义语句是 c 二维数组列下标一定要定义A)int x3=0,1,1,2,3; B)int x43=1,2,3,1,2,3,1,2,3,1,2,3; C)int x4=1,2,3,1,2,3,1,2,3,1,2,3; D)int x3=1,2,3,4; 7. 若有定义: int a23;,以下选项中对a 数组元素正确引用的是 d A)a2!1 B)a23 C)a03 D)a12 !1 8. 有以下程序 c #include main() int s12=1,2,3,4,4,
20、3,2,1,1,1,2,3,c5=0,i; for(i=0;i12;i+) csi+; for(i=1;i5;i+) printf(“%d ”,ci); printf(“ n”); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 36 页 - - - - - - - - - 程序的运行结果是A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D )1 1 2 3 9. 以下程序运行时输出结果的第一行是_, 第二行是 _, 第三行是 _。#define N 3 m
21、ain() int i,j,k=1,aNN=0; for(i=0;iN/2+1; i+) for(j=0; j=i; j+) aji-j=k+; for(; i2*N; i+) for(j=i+1-N; j=N-1; j+) aji-j=k+; for(i=0;iN; i+) for(j=0; jN; j+) printf(“%4d ”,aij);printf(“ n”);答案: 1 2 4 3 5 7 6 8 9 10. 以下程序运行时输出结果的第二行为_,第四行为 _,第六行 _。#include void change(int s33, int d) int i,j,k; if(d=0)
22、 for(i=0; i3; i+) for(j=i+1;j3;j+) k=sij; sij=sji; sji=k; else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 36 页 - - - - - - - - - for(i=0; i3; i+) for(j=0;j3-i;j+) k=sij; sij=s2-j2-i; s2-j2-i=k; main() int s33=1,2,3,4,5,6,7,8,9,i,j,k,n; change(s,0); for(i=0
23、; i3; i+) for(j=0;j3;j+) printf(“%4d ”,sij);printf(“ n”);change(s,1); for(i=0; i3; i+) for(j=0;j3;j+) printf(“%4d ”,sij);printf(“ n”);输出结果: 2 5 8 9 8 7 3 2 1 字符型数据和字符串1. 若有定义语句: char s10=123456700 ;, 则 strlen(s)的值是 A A) 7 B) 8 C) 9 D) 10 2. 设有如下程序段char s20= “Bejing ”,*p; p=s; 则执行 p=s; 语句后,以下叙述正确的是 a
24、 A)可以用 *p 表示 s0 B)s 数组中元素的个数和p 所指字符串长度相等名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 36 页 - - - - - - - - - C)s 和 p 都是指针变量D)数组 s 中的内容和指针变量p 中的内容相等3. 有定义语句: char s10;,若要从终端给 s 输入 5 个字符,错误的输入语句是 d A)gets(&s0); B)scanf( “%s ”,s+1); C)gets(s); D)scanf( “%s ”,s1)
25、; 4. 设有 定义 :char s81;int i=0;,以 下不 能将 一行 ( 不 超过 80 个字符 ) 带有 空格 c 的字符串正确读入的语句或语句组是A)gets(s); B)while(si+=getchar()!= n);si= 0;C)scanf(%s,s); D)doscanf(%c,&si);while(si+!= n);si= 0;5. 以下选项中正确的语句组是 d A)char s;s=BOOK!; B)char *s;s=BOOK!; C)char s10;s=BOOK!; D)char *s;s=BOOK!; 使用字符指针变量和字符数组的赋值方式对字符数组只能定义
26、的同时赋初值如:Char str6=g, o, o, d, 0 ; Char str6=“good”; 前 4 个元素为 good 第 5,6 个元素为 0, 有 6 个空间Char str=“good”;前 4 个元素为 good第 5 个元素为 0, 有 5 个空间名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 36 页 - - - - - - - - - Char str6=“good”; Char str6;str=“good”; 错误赋值对字符指针变量可以分开
27、赋初值: Char *str; str= “good”; 或 Char *str=“good”; Char *str=“good”; 错误赋值函数1. 设有定义语句 int(*f)(int);,则以下叙述正确的是 b A)f 是基类型为 int的指针变量B) f是指向函数的指针变量,该函数具有一个int类型的形参C) f是指向 int类型一维数组的指针变量D) f是函数名,该函数的返回值是基类型为int类型的地址2. 有以下程序 c #include int f(int x) int y; if(x=0|x=1) return (3); y=x*x-f(x-2); return y; main
28、() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 36 页 - - - - - - - - - int z; z=f(3); printf(“%d n”,z); 程序的运行结果是A)0 B)9 C)6 D)8 3. 有以下程序 c #include void fun(int *s,int nl,int n2) int i,j,t; i=nl; j=n2; while(ij) t=si;si=sj;sj=t;i+;j-; main() int a10=1,2,3,4,
29、5,6,7,8,9,0,k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for (k=0;k10;k+)printf(“%d ”,ak); printf(“ n”); 程序运行的结果是A)0987654321 B)4321098765 C)5678901234 D)0987651234 4. 下面的函数调用语句中func 函数的实参个数是A func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
30、 - - - 第 18 页,共 36 页 - - - - - - - - - A) 3 B) 4 C)5 D) 8 5. 有以下程序#include void fun(int a,int n) int i,t; for(i=1;in/2;i+) t=ai;ai=an-1-i;an-1-i=t; main() int k10=1,2,3,4,5,6,7,8,9,10,i; fun(k,5); for(i=2;i8;i+)printf(%d ,ki); printf(n ); 程序运行的结果是D A) 345678 B)876543 C)1098765 D)325678 6. 以下程序的功能是:通
31、过函数func 输入字符并统计字符的个数。输入时用字符 作为输入结束标志。请填空。#include long _func()_; /* 函数说明语句 */ main() long n; n=func(); printf(n=%ldn,n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 36 页 - - - - - - - - - long func() long m; for(m=0;getchar()!= ;_m+_); return m; 7. 以下程序的输出结
32、果是( 3 )#include #define N 5 int fun(int *s,int a,int n) int j; *s=a;j=n; while(a!=sj)j-; return j; main() int sN+1; int k; for(k=1;k=N;k+) sk=k+1; printf(%dn,fun(s,4,N); 8. main() int s, p9=1,2,3,4,5,6,7,8,9; printf(“ n%d ”, add(p,5); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
33、 - - - - - - 第 20 页,共 36 页 - - - - - - - - - add(int *p, int n) if(n=1) return *p; else return *p+add(p+1,n-1); 程序输出结果是 _。结果为: 15 9.fun(int n, int *s) int f1,f2; if(n=1|n=2) *s=1; else fun(n-1,&f1); fun(n-2, &f2); *s=2*f1+f2+1; printf( “ n%d,%d ”,f1,f2);main() int x; fun(4,&x); printf(“ n x=%d”,x);
34、程序运行时输出的第一行是_,第二行是 _,最后一行是 _。答案: 1,1 4,1 x=10 10. 以下程序输出结果是 _ main() printf(“%d ”, fun(5); fun( int n) if(n=1) return 1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 36 页 - - - - - - - - - return n-fun(n-1); 结果为: 3 11以下程序实现将a 数组中后 8 个元素从大到小排序的功能void sort(int
35、 *x, int n) main() int a12=5,3,7,4,2,9,8,32,54,21,6,43, k; sort(_, 8); for(k=0; k12; k+) printf(“%d ”,ak); void sort(int *x, int n) int j,t; if(n=1) return; for(j=1; jn; j+) if(_) t=x0; x0=xj; xj=t; sort(x+1, _); 本题结合了冒泡排序法,第一个空填:a+4 ;第二个空填: x01) t=p0; 0=pn-1; pn-1=t; rev(p+1,n-2); 名师资料总结 - - -精品资料欢
36、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 36 页 - - - - - - - - - main() int j,a5=1,2,3,4,5; rev(a+1,4); for(j=0; j5; j+) printf(“%d ”,aj);printf(“ n”; rev(a,3); for(j=0; j5; j+) printf(“%d ”,aj); 输出结果: 15432 45132 13.main() int a33,i,j; numlist(&a00,9); for(i=0; i3; i+) f
37、or(j=0; j3; j+) printf(“%d,” , aij); printf(“ n”);numlist(int *p, int n) int i; for(i=0; in; i+) pi=num(i); num(int n); if(n=0) return 1; return num(n-1)*2+1; 程序运行时输出的第一行是: 1,3,7 14.long func(long x) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 36 页 - - - -
38、- - - - - if(x100) return x%10; else return func(x/100)*10+x%10; main() printf(“The result is : %ld n”,func(132645); 程序运行结果是 The result is : 365 15.void fun(int *p1, int *p2); main() int i, a6=1,2,3,4,5,6; fun(a,a+5); for(i=0; i5; i+) printf(“%2d ”,ai); void fun(int *p1, int *p2) int t; if(p1p2) t=*
39、p1; p1=*p2; *p2=t; fun(p1+=2, p2-=2); 程序运行结果是 6 2 4 3 5 1 16.#include void f(int a, int n, int x, int *c); main() int a10=1,3,5,2,3,5,3,7,4,1,t=0; f(a,10,5,&t); printf(“%d ”,t); void f(int a, int n, int x, int *c) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共
40、 36 页 - - - - - - - - - if(n=0) return; if(a0=x) (*c)+; f(a+1,n-1,x,c); 程序运行结果是 3 地址和指阵1. 有以下程序 c #include void fun(char *a,char *b) while(*a= *) a+; while(*b=*a) b+;a+; main() char *s= ”*a*b*”,t80; fun(s,t); puts(t); 程序的运行结果是A)*a*b B) a*b C) a*b* D) ab 2. 有以下程序 a #include #include void fun(char *s
41、,int n) char *t; int i,j; for(i=0;in-1;i+) for(j=i+1;jstrlen(sj) t=si;si=sj;sj=t; main() char *ss= “bcc”, ”bbcc”, ”xy”, ”aaaacc”, ”aabcc”; fun(ss,5); printf(“%s ,%sn”,ss0,ss4); 程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc 3. 若有以下定义 b int x10,*pt=x; 则对数组元素的正确引用是A)*&x10 B)*(x+3) C)*(pt+10)
42、D)pt+3 5. 有以下程序#include (stdio.h) void fun(int a, int b) int t; t=a; a=b; b=t; main() int c10=1,2,3,4,5,6,7,8,9,0,i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 36 页 - - - - - - - - - for(i=0;i10;i+=2) fun(ci,ci+1); for (i=0;i10;i+) printf(%d,ci); printf(n
43、); 程序运行的结果是A A)1,2,3,4,5,6,7,8,9,0 B)2,1,4,3,6,5,8,7,0,9 C)0,9,8,7,6,5,4,3,2,1 D)0,1,2,3,4,5,6,7,8,9 #include void fun(int *a, int *b) B int t; t=*a; *a=*b; *b=t; main() int c10=1,2,3,4,5,6,7,8,9,0,i; for(i=0;i10;i+=2) fun(&ci,&ci+1); for (i=0;i10;i+) printf(%d,ci); printf(n); 6. 有以下程序#include struc
44、t st int x,y; data2=1,10,2,20; main() struct st *p=data; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 36 页 - - - - - - - - - printf(%d,p-y); printf(%dn,(+p)-x); 程序运行的结果是C A) 10,1 B)20,1 C)10,2 D) 20,2 7. 以下程序的输出结果是( 9911 )#include main() int j,a=1,3,5,7,9,11
45、,13,15,*p=a+5; for(j=3;j;j-) switch(j) case 1: case 2: printf(%d ,*p+); break; case 3: printf(%d ,*(-p); 预处理 : 宏替换只是原样替换。1. 以下关于宏的叙述中正确的是c A)宏名必须用大写字母表示B)宏定义必须位于源程序中所有语句之前C)宏替换没有数据类型限制D)宏调用比函数调用耗费时间2. 以下叙述中错误的是 d A)在程序中凡是以“”开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行名师资料总结 - - -精品资料欢迎
46、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 36 页 - - - - - - - - - D)C程序对预处理命令行的处理是在程序执行的过程中进行的在对程序进行通常的编译之前,会先对程序中的“预处理命令”进行预处理3.#define N 3 #define Y(n) (N+1)*n) 则执行语句“ z=2*(N+Y(5+1); ”后,z 的值是 _。替换时原样替换后的式子为:z=2*(3+(3+1)*5+1); 4.#include #define ADD(x,y) x+y main() int a=1
47、5,b=10,c=20,d=5; printf(“%d n”,ADD(a,b)/ADD(c,d);上面程序输出结果为_。 15+10/20+5=20 结构体1. 有以程序 a #include #include typedef struct char name9; char sex; float score2; STU; void f( STU a) STU b= “Zhao” , m ,85.0,90.0 ; int i; strcpy(a.name,b.name); a.sex=b.sex; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
48、- - - - 名师精心整理 - - - - - - - 第 29 页,共 36 页 - - - - - - - - - for(i=0;i2;i+) a.scorei=b.scorei; main() STU c= “Qian”, p,95.0,92.0; f(c); printf(“%s,%c,%2.0f,%2.0fn”,c.name,c.sex,c.score0,c.score1); 程序的运行结果是A)Qian,f,95,92 B) Qian,m,85,90 C) Zhao,f,95,92 D) Zhao,m,85,90 2. 以下结构体类型说明和变量定义中正确的是 a A)typed
49、ef struct B)struct REC; int n; char c;REC; int n; char c; REC t1,t2; struct REC t1,t2; C)typedef struct REC ; D)struct int n=0; char c=A;t1,t2; int n;char c;REC t1,t2; 先定义结构体 , 再定义结构体变量 b 定义结构体的同时定义结构体变量d 用这种方法结构体名可以省掉3. 有以下程序#include main() struct STU char name9; char sex; double score2; struct STU
50、 a=Zhao,m,85.0,90.0,b=Qian,f,95.0,92.0; b=a; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 30 页,共 36 页 - - - - - - - - - printf(%s,%c,%2.0f,%2.0fn,b.name,b.sex,b.score0,b.score1); 程序运行的结果是D A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,f,95,92 D)Zhao,m,85,90 位运算1. 变量 a 中的数据用