C语言程序设计基础教程 - 习题答案
更新时间:2024-06-17 09:26:01 阅读量: 综合文库 文档下载
习题答案 第1章
1.1 填空题
1.1.1 应用程序ONEFUNC.C中只有一个函数,这个函数的名称是__main 。 1.1.2 一个函数由__函数头__和__函数体__两部分组成。
1.1.3 在C语言中,输入操作是由库函数__scanf 完成的,输出操作是由库函数_printf_完
成的。
1.1.4 通过文字编辑建立的源程序文件的扩展名是_.c__;编译后生成目标程序文件,扩展
名是__.obj__;连接后生成可执行程序文件,扩展名是_.exe_;运行得到结果。
1.1.5 C语言程序的基本单位或者模块是__函数__。 1.1.6 C语言程序的语句结束符是_;___。
1.1.7 编写一个C程序,上机运行要经过的步骤:______________________________。 1.1.8 在一个C语言源程序中,注释部分两侧的分界符分别为_/*__和__*/__。
1.1.9 C语言中的标识符只能由三种字符组成,它们是 字母 、 数字 和 下划线 。
且第一个字符必须为 字母或下划线 。
1.1.10 C语言中的标识符可分为关键字、 预定义标识符 和 用户标识符 3类。
1.2 选择题
1.2.1 一个C程序的执行是从( A )。
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 1.2.2 以下叙述不正确的是(C)。
A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数
C) 在C程序中,注释说明只能位于一条语句的后面 D) C程序的基本组成单位是函数
1.2.3 C语言规定:在一个源程序中,main函数的位置( C )。
A)必须在程序的开头 B)必须在系统调用的库函数的后面 C)可以在程序的任意位置 D)必须在程序的最后 1.2.4 C编译程序是 (A)。
A)将C源程序编译成目标程序的程序 B)一组机器语言指令
C) 将C源程序编译成应用软件 D) C程序的机器语言版本
1.2.5 要把高级语言编写的源程序转换为目标程序,需要使用( D)。
A) 编辑程序 B) 驱动程序 C) 诊断程序 D) 编译程序 1.2.6 以下叙述中正确的是( C)。
A) C语言比其他语言高级
B) C语言可以不用编译就能被计算机识别执行
C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚,具有其他语言的一切优点 1.2.7 以下叙述中正确的是(A)。
A) C程序中注释部分可以出现在程序中任意合适的地方 B) 花括号“{”和“}”只能作为函数体的定界符
C) 构成C程序的基本单位是函数,所有函数名都可以由用户命名 D) 分号是C语句之间的分隔符,不是语句的一部分
1.2.8 以下叙述中正确的是( B)。
A) C语言的源程序不必通过编译就可以直接运行
B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译 1.2.9 用C语言编写的代码程序(B)。
A) 可立即执行 B) 是一个源程序 C) 经过编译即可执行 D) 经过编译解释才能执行 1.2.10 以下叙述中正确的是(C )。
A) 在C语言中,main函数必须位于程序的最前面 B) C语言的每行中只能写一条语句 C) C语言本身没有输入输出语句
D) 在对一个C程序进行编译的过程中,可以发现注释中的拼写错误 1.2.11 下列4组选项中,均不是C语言关键字的选项是( A )。
A)define B)getc C)include D)while IF char scanf go type printf case pow 1.2.12 下列4组选项中,均是C语言关键字的选项是(B)。
A)auto B)switch C)signed D)if enum typedef union struct include continue scanf type
1.2.13 C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符(C)。
A) 必须为字母 B)必须为下划线
C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符
第2章
2.1填空题
2.1.1 C程序中数据有 常量 和 变量之分,其中,用一个标识符代表一个常量的,称
为 符号 常量。C语言规定在程序中对用到的所有数据都必须指定其 数据 类型,对变量必须做到先 定义 ,后使用。
2.1.2 C语言中,用关键字 float 定义单精度实型变量,用关键字 double 定义双精度实型变量,用关键字 char 定义字符型变量。
2.1.3 在C语言中,以16位PC机为例,一个char型数据在内存中所占的字节数为 1 ;一个int型数据在内存中所占的字节数为 2 ,则int型数据的取值范围为 -32768~32767 。一个float型数据在内存中所占的字节数为 4 ;一个double型数据在内存中所占的字节数为 8 。单精度型实数的有效位是 6-7 位 ,双精度型实数的有效位是 15-16 位 。
2.1.4 设C语言中的一个基本整型数据在内存中占2个字节,若欲将整数135791正确
无误地存放在变量a中,应采用的类型说明语句是 long int a=15791; 。 2.1.5 C的字符常量是用 单 引号括起来的 1 个字符,而字符串常量是用 双引号括起来的 字符 序列。 2.1.6 C语言中,用“\\”开头的字符序列称为转义符。转义符“\\n”的功能是 回车换行 ;
转义符“\\r”的功能是 回车 。
2.1.7 若有定义:char c=‘\\010’;则变量c中包含的字符个数为 1 。 2.1.8 负数在计算机中是以 补码 形式表示。
2.1.9 C语言中,&作为双目运算符是表示的是 按位与 ,而作为单目运算符时表示
的是 取地址 。
2.1.10 在C语言的赋值表达式中,赋值号左边必须是 变量 。
2.1.11 自增运算符++、自减运算符--,只能用于 变量 ,不能用于常量或表达式。++
和- -的结合方向是“自 右左 至 左 ”。
2.1.12 若a是int型变量,则执行下面表达式后a的值为 2 。 a=25/3%3
2.1.13 写出下列数所对应的其它进制数(D对应十进制,B对应二进制,o对应八进制,
H对应十六进制)
32D= 100000 B= 40 O= 20 H
75D= 1001011 B= 113 O= 4B H
2.1.14 假设已指定i为整型变量,f为float变量,d为double型变量,e为long型变量,
有式子10+'a'+i*f-d/e,则结果为 double 型。
2.1.15 若有定义:int x=3,y=2; float a=2.5,b=3.5;则下面表达式的值为 1 。 (x+y)%2+(int)a/(int)b
2.1.16 5/3的值为 1 ,5.0/3的值为 1.666667 。 2.1.17 若有以下定义,int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是 -16 。 2.1.18 若a是int型变量,则表达式(a=4*5,a+2),a+6的值为 26 。 2.1.19 若x和n均为int型变量,且x的初值为12,n的初值为5,则执行表达式x%=(n%=2)
后x的值为: 0 。
2.1.20 若有定义语句:int e=1,f=4,g=2;float m=10.5,n=4.0,k;,则执行表达式
k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是 13.7 。
2.2 选择题
2.2.1 逗号表达式\的值是( C )。
A) 15 B) 60 C) 30 D) 不确定 2.2.2 若有以下定义和语句:
char c1='a', c2='f';
printf(\ 则输出结果是:( D )
A) 2 ,M B) 5,! C) 2,E D) 5,G
2.2.3 sizeof(float)是( B )。
A)一个双精度型表达式 B)一个整型表达式 C)一种函数调用 D)一个不合法的表达式
2.2.4 若有以下定义,则能使值为3的表达式是( D )。
int k=7,x=12;
A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5) 2.2.5 在C语言中,要求运算数必须是整型的运算符是( A )。
A) % B) / C) < D) ! 2.2.6 下面4个选项中,均是合法整型常量的选项是( A )。
A) 160 B) -0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x 2.2.7 下面4个选项中,均是不合法浮点数的选项是( B )。
A) 160. B)123 C) -.18 D)-e3 0.12 2e4.2 123e4 .234 E3 .e5 0.0 1e3 2.2.8 下面正确的字符常量是( C )。
A)”C” B)”\\\\” C)?W? D)??
2.2.9 在C语言中,int、char和short三种类型数据在内存中所占用的字节数( D )。
A)由用户自己定义 B)均为2个字节
C)是任意的 D)由所用机器的机器字长决定 2.2.10 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)后x的值为( B )。
A)7 B)8 C)6 D)2
2.2.11 假设所有变量均为整型,则表达式x=(i=4,j=16,k=32)后x的值为( C )。
A)4 B)16 C)32 D)52
3x2.2.12 若有代数式x?log10,则正确的C语言表达式是( D )。
A)fabs(x*3+log(x)) B)fabs(pow(x,3)+log(x))
C)abs(pow(x,3.0)+log(x)) D)fabs(pow(x,3.0)+log(x))
2.2.13 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( B )。
A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0 C)n=n*100+0.5/100.0 D) n=(n/100+0.5)*100.0 2.2.14 以下不正确的叙述是( D )。
A)在C语言中,逗号运算符的优先级最低
B)在C语言中,APH和aph是两个不同的变量
C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
2.2.15 以下正确的叙述是( D)。
A)在C语言中,每行中只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,无论是整数还是实数,都能被准确无误地表示 D)在C程序中,%是只能用于整数运算的运算符
习 题 三
3.1 填空题
3.1.1 程序的三种基本结构是 顺序 、 选择 、 循环 。 3.1.2 执行( a=3.0+5,a*4 ),a+=-6; 变量a 及表达式的值分别为 2.0,2.0 3.1.3 下列语句被执行后的执行结果是 1\\abc\\def 。 int a=1;
printf (“%d\\\\%s\\\\%s”,a,”abc”,”def”);
3.1.4 getchar( ) 函数的作用是 从键盘上接收一个字符 。 3.1.5 运行以下程序后,用户输入123456abc,输出结果为 123,45,6 。
void main() { int a,b; char c;
scanf (\ printf(\ }
3.1.6 下面程序的输出结果是 1112 。
# include
{ /* int i=20; */ i++;
printf (“%d”,i ++);
}
printf (“%d\\n”,i ); }
3.1.7 下面程序运行后,从键盘输入30,则程序的输出结果是 a=31,Ha=1f,Oa=37 。
void main () { int a ;
scanf(”%d”, &a ); a++;
printf (“a=%d,Ha=%x,Oa=%o”,a,a,a); } 3.1.8 下面程序的输出结果是 a=-3 b=?D?
“END” 。
void main ( ) { int a,b=68; a=-3;
printf(“\\ta=%d\\n\\tb=\\?%c\\?\\n\\”end\\”\\n”,a,b); }
3.1.9 下面程序的输出结果是 13.7000000 。
# include
{ int a=1,b=4,c=2; float x=10.5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf(“%f\\n”,z); }
3.1.10 下面程序运行后,若输入a=2,b=3结果是x1= 6.00
x2= 0.67 。
void main( ) { float a ,b ,x1, x2 ;
scanf (“a=%f,b=%f“ ,&a ,&b ) ; x1=a*b ; x2=a/b ;
printf (“x1=%5.2f \\nx2=%5.2f \\n” ,x1,x2 ); }
3.2 选择题
3.2.1 指出下面正确的输入语句是( B )。
A) scanf (“a=b=%d”,&a,&b); B) scanf (“a=%d,b=%f”,&m,&f ); C) scanf (“<”,c); D) scanf (“%5.2f”, &f);
3.2.2 执行scanf (“%d%c%f”,&a,&b,&c) 语句,若输入1234a12f56 则变量a,b,c的值为
( C )。
A) a=1234 b=?a? c=12.56 B) a=1 b=?2? c=341256 C) a=1234 b=?a? c=12.0 D) a=1234 b=?a12? c=56.0
A) 由主程序与子程序构成 B) 由多个主函数与多个子函数构成 C) 由主函数与子函数构成 D) 由一个主函数与多个子函数构成 7.1.2 C语言在程序开始执行时,其正确的描述是(B )
A) 由编写程序语句的顺序格式执行 B) 在主函数main()开始处执行 C) 在第一个子函数处执行 D) 由人随机选择执行 7.1.3 下列有关函数错误的描述是(A )
A) C语言中允许函数嵌套定义 B) C语言中允许函数递归调用 C) 调用函数时,实参与形参的个数、类型需完全一致 D) C语言函数的缺省数据类型是int类型
7.1.4 在C语言中,各个函数之间具有的关系是(D )
A) 不允许直接递归调用,也不允许间接递归调用 B) 允许直接递归调用,不允许间接递归调用 C) 不允许直接递归调用,允许间接递归调用 D) 允许直接递归调用,也允许间接递归调用 7.1.5 在C语言中,函数的返回值的类型是由(D )
A) C语言的编译程序,在程序编译时决定 B) 由调用该函数的主调函数所决定
C) 由return语句的表达式的类型所决定 D) 由定义该函数时指定的函数类型所决定
7.1.6 当调用函数时,如果实参是一个数组名,则向函数传送的是(B )
A) 数组的首元素 B) 数组的首地址
C) 数组每个元素的地址 D) 数组每个元素中的值 7.1.7 对于以下程序,不正确的叙述是(A )
#include
void f(int n); /*函数说明*/ void main()
{ void f(int n); /*函数说明*/ f(5); }
void f(int n)
{ printf(\ }
A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f B) 要求函数f无返回值,所以可用void将其类型定义为无值型
C) 在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调
用函数f
D) 对于上面程序的说明,编译时系统会提示出错信息:提示对f函数重复说明 7.1.8 以下程序的输出结果是(A )。
long fun( int n) { long s;
if(n==1 || n==2) s=2; else s=n-fun(n-1); return s;} void main()
{ printf(\
A) 1 B) 2 C) 3 D) 4 7.1.9 有以下程序执行后输出的结果是(C )。
int f1(int x,int y)
{ return x>y?x:y; } int f2(int x,int y)
{ return x>y?y:x; } main()
{int a=4,b=3,c=5,d,e,f; d=f1(a,b); d=f1(d,c); e=f2(a,b); e=f2(e,c); f=a+b+c-d-e;
printf(\}
A)3,4,5 B)5,3,4 C)5,4,3 D)3,5,4 7.1.10 设有以下函数;
f(int a) { int b=0; static int c=3; b++;c++;
return(a+b+c); }
如果在下面的程序中调用该函数,则输出结果是(A )。 void main() { int a=2, i;
for(i=0;i<3;i++) printf(\ }
a) b) c) d) 7 7 7 7 8 9 10 7 9 11 13 7 A)a) B)b) C)c) D)d) 7.1.11 以下程序的输出结果是(C )。
int x=3; void main() { int i;
for(i=1;i incre() { static int x=1; x*=x+1; printf(\} A)3 3 B)2 2 C)2 6 D)2 5 以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。程序运行后的输出结果是(A )。 void reverse(int a[],int n) {int i,t; for(i=0;i {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } void main() {int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8); for(i=6;i<10;i++) s+=b[i]; printf(\} A)22 B)10 C)34 D)30 7.1.13 程序运行后的输出结果是(C )。 #include { strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);} } void main() {char p[][10]={\ f(p,5); printf(\} A)6 B)4 C)5 D)3 7.2 填空题 7.2.1 在C语言中,除主函数外,其子函数分为 标准库函数、自定义函数 两类。 7.2.2 变量在程序使用中,其作用域可分为 全局 变量和 局部 变量。 7.2.3 以下函数用以求x的y次方,请补充填空。 double fun ( double x , int y ) { int i; double z; for ( i=1 ; i <=y ; i + + ) z= z*x ; return z; } 7.2.4 以下程序的功能是计算 s?long f(int n) { int i; long s; s= 1 ; 7.1.12 ?k!,请补充填空。 k?0n for(i=1; i<=n; i++) s= s*i ; return s; main() { long s; int k,n; scanf(\s= 0 ; for(k=0; k<=n; k++) s=s+ f(k) ; printf(\ } 习题八 8.1 选择题 8.4.1 下面各语句行中,能正确进行赋字符串操作的语句行是 ( C) A) char s[4][5]={ \ B) char s[5]={?a?,?b?,?c?,?e?,?f?}; C) char *s; s=\ D) char *s=; scanf(“%s”,s); 8.4.2 正确的数组定义语句为 (D ) A) int A[“a”]; B) int A[3,5]; C) int A[ ][ ]; D) int *A[3]; 8.4.3 若有以下说明和语句,对c数组元素的正确引用是(D) int c[4][5], (*cp)[5]; cp=c; A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2) 8.4.4 执行下列语句后,其输出结果为 (B ) #include { int **k, *j, i=100; j=&i; k=&j; printf(\} A) 运行错误 B) 100 C) i的地址 D) j的地址 8.4.5 设有如下的程序段: char str[ ]=\char *ptr;ptr=str; 执行上面的程序段后,*(ptr+5)的值为( B ) A) 'o' B) '\\0' C) 不确定的值 D) 'o'的地址 8.4.6 若有说明:long *p,a; 则不能通过scanf语句正确给输入项读入数据的程序段是(A)。 A)*p=&a;scanf(\ B)p=(long *)malloc(8);scanf(\ C)scanf(\ D)scanf(\8.4.7 下面函数的功能是(B ) sss(s, t) char *s, *t; { while((*s)&&(*t)&&(*t++==*s++)); return(*s-*t);} A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串s接续到字符串t中 8.4.8 请选出以下程序的输出结果(B ) #include sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(\} A) 5,2,3 B) -5,-12,-7 C) -5,-12,-17 D) 5,-2,-7 8.4.9 下面函数的功能是(A) int fun1(char*x) { char *y=x; while(*y++); return(y-x-1); } A)求字符串的长度 B)比较两个字符串的大小 C)将字符串x复制到字符串y D)将字符串x连接到字符串y后面 8.2 填空题 8.2.1 在指针的概念中,“*”表示的含义是所指对象的内容,而“&”表示的含义是 取变量的地址 。 8.2.2 如果p是一个指针,那么*&p表示的含义是 P ,而&*p表示的含义是 P 。 8.2.3 统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束标志,请 填空。 #include for(i=0; i<26; i++) num[i]=0; while( (c(或者*pc)=getchar()) !='#') /*统计从终端输入的大写字母个数*/ if( isupper(*pc)) num[*p-65]+=1; for(i=0; i<26; i++) /*输出大写字母和该字母的个数*/ if(num[i]) printf(“%c: %d\\n”, i+?A?, num[i] ); 以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请补充填空。 # include findmax (int *s ,int t ,int *k ) { int p; for(p=0,*k=p;p if ( s[p] > s[*k] ) __*k=p______; } void main() { int a[10] , i , k ; for ( i=0 ; i<10 ; i + + ) scanf(\findmax ( a,10,&k ); printf ( \} 8.2.5 以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素 数,请补充填空。 #include { int i,a[10],*p= a ,sum=0; printf(\ for(i=0;i<10;i + + ) scanf(\for(i=0;i<10;i + + ) if(isprime(*(p+i)) = = 1) { printf(\ sum+= a[i] //或者 *(a+i) 或者 *(p+i) ; } /*打印 素数*/ printf(\ /*打印所有素数的和*/ } isprime(int x) { int i; for(i=2;i<=x/2;i + + ) if(x%i = = 0) return (0); return 1 ; } 8.2.6 在下列程序中,其函数的功能是比较两个字符串的长度,比较的结果是函数返 回较长的字符串的地址。若两个字符串长度相同,则返回第一个字符串的地址。 #include char * fun ( char *s, char *t) { char *ss=s, *tt=t; while((*ss)&&(*tt)) { ss++; tt++; } if (*tt) return tt; else return ss ; } } 8.2.4 void main( ) { char a[20],b[10],*p=a,*q=b; gets(p); gets( q ); printf(\} 8.3 写出以下程序的运行结果 8.4.1 main( ) { int a[ ]={2,4,6,8},*p=a,i; for(i=0;i<4;i++) a[i]=*p++; printf(\} 运行结果: 6,8 8.4.2 #include int x=4,y=6,z=8; int p1=&x,p2=&y,*p3; a=p1==&x; b=3*(-*p1)/(*p2)+7; c=*(p3=&z)=*p1*(*p2); printf(\} 运行结果: 1,5,24 8.4.3 #include { int a[ ]={2,4,6,8,10},*p,**k; p=a; k=&p; printf(\ \printf(\} 运行结果: 24 8.4.4 #include { int a[3][4]={2,4,6,8,10,12,14,16,18,20,22,24}; int (*p)[4]=a,i,j,k=0; for(i=0;i<3;i++) for(j=0;j<2;j++)) k+=*(*(p+i)+j); printf(\ } 运行结果: 66 8.4.5 #include char s[ ]=“-12345”; if(s[k]==?+?||s[k]==?-?) sign=s[k++]==?+??1:-1; for(m=0;s[k]>=?0?&&s[k]<=?9?;k++) m=m*10+s[k]-?0?; printf(\ } 运行结果: Result=-12345 8.4.6 若有5门课程的成绩是:90.5, 72, 80, 61.5, 55,则程序运行结果是多少,其函数执 行什么功能。 #include float fun ( float *a , int n ) { int i; float sum=0; for(i=0; i void main() { float score[30]={90.5, 72, 80, 61.5, 55}, aver; aver = fun( score, 5 ); printf( \} 运行结果: Average score is: 71.80 函数功能:求5门课程平均分 8.4.7 若输入字符串\,则程序运行结果是多少,其程序执行什么功能。 #include { long nn=0; int ss=1; if((*p)=='-'){ p++; ss=-1;} if((*p)=='+') p++; while(*p) nn=nn*10-48+(*p++); return(nn*ss); } void main() /* 主函数 */ { char s[6]; long n; 8.4.8 8.4.9 printf(\ gets(s); n = fun(s); printf(\} 运行结果: -1234 程序功能:输入一个字符串,并将其转换为数字 下列程序功能是将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:8642。请改正程序中的错误,使它能得出正确的结果。 #include void fun (long s, long *t) { int d; long sl=1; *t = 0; while ( s > 0) { d = s; if (d/2==0) // 改为:if(d%2==0) { *t=d* sl+ *t; sl *= 10; } s \\= 10; //改为:s/=10; } } void main() { long s, t; scanf(\ fun(s, &t); printf(\} 下列程序功能是对M行M列整数方阵求两条对角线上各元素之和。请改正程序中的错误,使它能得出正确的结果。 #include int fun(int n, int x[ ][ ]) //改int fun(int n,int x[][M]) { int i, j, sum=0,*p; //改int i,j,sum=0,(*p)[M]; for( p = 1,i= 1;i <= M ; i++ ) //改for(p=x,i=0;i void main( ) { int a[M][M]={{1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}}; printf ( \} 习题9 9.1 选择题 9.1.1 在宏定义#define PI 3.14159 中,宏名PI代替的是一个( D )。 A) 常量 B) 单精度数 C) 双精度数 D) 字符串 9.1.2 定义一个名为NEW(X)的宏,产生它的参数的负值,正确的语句是( C )。 A) #define NEW(X) -x B)#define NEW(X) x C) #define NEW(X) (-x) D)#define NEW(X) (-x); 9.1.3 定义一个名为ABSVAL(X)的宏,产生它的参数的绝对值,正确的语句是( D )。 A) #define ABSVAL(X) (-x) B) #define ABSVAL(X) (x<0 ? –x:x) C) #define ABSVAL(X) (x>0 ? x:-x) D) #define ABSVAL(X) ((x)<0 ?(-x):(x)) 9.1.4 下列格式中哪个是合法的( D)。 A) #define PI=3.14159 B) include "string.h" C) #include math.h; D) #define s(r) r*r 9.1.5 以下程序的输出结果是( B )。 #define MIN(x,y) (x)<(y)?(x):(y) main( ) { int i=10,j=15,k; k=10*MIN(i,j); printf("%d\\n",k); } A) 10 B) 15 C) 100 D) 150 9.1.6 以下有关宏替换的叙述不正确的是( C )。 A) 宏替换只是字符替换 B) 宏名无类型 C) 宏名必须用大写字母表示 D) 宏替换不占用运行时间 9.1.7 设有以下宏定义,则执行语句“z=2*(N+Y(5+1));”后,z值为( C )。 #define N 3 #define Y(n) ((N+1)*n) A) 42 B) 15 C) 48 D) 出错 9.1.8 设有以下定义:#define F(n) 2*n ,则表达式F(4+2)的值是( B )。 A) 12 B) 10 C) 22 D)20 9.1.9 关于预处理,以下叙述正确的是( B )。 A. 可以把define和if定义为用户标识符(即宏名或常量符号名) B. 可以把define定义为用户标识符,但不能把if定义为用户标识符 C. 可以把if定义为用户标识符,但不能把define定义为用户标识符 D. define和if都不能定义为用户标识符 9.1.10 关于预处理,以下叙述正确的是( B )。 A. 预处理命令行必须位于C源程序的起始位置 B. 在C语言中,预处理命令行都以“#”开头 C. 每个C程序必须在开头包含预处理命令行:#include 9.2 编程题 9.2.1 写出下列程序的运行结果,并上机予以验证。 #define LETTER 0 void main( ) { char str[20]= "C Language",c; int i=0;
正在阅读:
C语言程序设计基础教程 - 习题答案06-17
体育商品店创业计划书09-04
高边坡锚索框架防护工程的施工02-28
工程索赔意向书优秀范文02-08
塑料箱运输小车项目可行性研究报告(发改立项备案+2013年最新案例06-01
常减压装置操作规程12-01
我们家的捣蛋鬼作文400字06-24
2015年各酒企财报,白酒行业有望复苏05-15
定义市场营销学重要定义汇总06-06
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 习题
- 程序设计
- 答案
- 语言
- 基础
- 教程
- ABB-ACS510变频器参数设置做485通信
- 有机化学名词详解
- 2011年下毛中概论实践活动方案
- 水利工程施工生产例会会议纪要
- 沪教版6年级数学上册第2章第6讲:真分数的乘法(教案)
- 县委书记工作讲坛领导讲话6篇和市区县委书记发言54篇
- 参加名思教研心得体会
- 我军的现行军人工资待遇标准
- 大学跆拳道教案(DOC)
- v加入收藏 v上传资料 v网站地图 v设为首页欢迎光临莲山课件
- 2014届毕业生毕业论文写作要求
- 交换机与路由器配置
- 安全措施方案
- 苏州大学企业管理资料微观经济学习题(4)
- 项目公路施工安全管理手册
- 四川省咨询工程师考试《政策规划》重要知识点每日一讲(9月23日
- 关于建立上报技术人员业绩档案的通知
- 对亲子教育中基本问题的浅析
- 上海牛津版英语八年级下8BU1-U7期末单元和综合复习题和参考答案
- 刘臣奇主编-汇编语言程序设计-课外练习题参考答案