当前位置:文档之家› 实验习题答案

实验习题答案

C语言概述1.若有源程序文件t1.c,编译后生成的目标文件名是_t1.obj_,连接后生成的文件名是__t1.exe_,它们位于磁盘什么位置?默认情况下是obj和源文件在同一目录下,exe在源文件目录下的debug目录下,可以在编译环境中设置到其他地方。

2.程序1_3.c中输出的10!值是多少?数据与数据类型1.实验一的程序1中,语句a=1+1/2+1/3+1/4;执行后变量a的值是__1___。

怎样修改程序才能得到正确的结果?将a=1+1/2+1/3+1/4改为a=1+1/2.0+1/3.0+1/4.0;2.实验二中你用什么样的方式定义符号常量?还可以用什么方法定义符号常量?可以通过Define宏定义和const常量定义两种方式定义符号常量3.直接阅读实验四的程序,你认为三条输出结果是什么?程序运行得到的结果是什么?能分析一下为什么是这样的结果?4.实验五的程序运行时,如果输入数据10 20 40 ,运行时会出现什么结果?为什么?息样避免这样的情况发生?面积出现不可预估值,pow参数为负数,即两边之和不大于第三边,应在算面积之前用if语句判断。

5.下面程序段执行后,问:变量a、b在内存中所占字节数分别为__4___、___4__,其值分别为__20_、__40__。

int a=-6.56; float b;b=(a=4*5,a*2),a+6;6.下列定义变量的语句中错误的是______。

A) int _int; B) double int_; C) char For; D) float US$; 7.若变量x、y已正确定义并赋值,下面符合C语言语法的表达式是__A___。

A) ++x,y=x-- B) x+1=y C) x=x+10=x+y D) double(x)/10 8.数字字符0的ASCII的值为48,下面程序运行后输出结果是______。

main(){char a='1',b='2';printf("%c,",b++);printf("%d\n",b-a);}A) 3,2 B) 50,2 C) 2,2 D) 2,509.设有 int x=11; 则表达式 x++*1/3 的值是______。

A) 3 B) 4 C) 11 D) 12顺序语句及输入与输出1.已有如下定义和输入语句,若要求a,b,c1,c2的值分别为5、6、A和B,当从第一列开始输入数据时,正确的数据输入方式是 ______ (<CR>表示回车)。

int a,b;char c1,c2;scanf("%d%c%d%c",&a,&c1,&b,&c2);A) 5 A 6 B<CR> B) 5 A6B<CR> C) 5A6B<CR>D) 5A6 B<CR> 2.以下说法正确的是_______。

A)输入项可以为一个实型常量,如scanf(“%f”,3.5);B)只有格式控制,没有输入项,也能正确输入,如scanf(“a=%d,b=%d”);C)当输入实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);D)当输入数据时,必须指明地址,如scanf(“%f”,&f);E)可以采用不同的格式符,实现对一个实型数据以八进制或十六进制形式输入/输出。

F)整型数据不能使用%f或%lf格式符。

3.若a是int型变量,则表达式(a=5*6,a*3),a+8的值是 _________ 。

4.若有定义:int b=7; float a=2.5,c=4.7; 则表达式 a+(int)(b/3*(int)(a+c)/2)%4的值为__5.5___。

5.输出长整型数据使用格式符___%ld____,输出无符号的整数用格式符__%u__ ,以指数形式输出单精实数用格式符__%e____。

6.下面程序运行时输入:10 11<回车>,输出__a=8,b=17________。

#include<stdio.h>void main(){int a,b;scanf("%o%x",&a,&b);printf("a=%d,b=%d\n",a,b);}7.下面程序段执行时,怎样输入才能让a=10,b=20 ?____a=10,b=20______________ int a,b;scanf("a=%d,b=%d",&a,&b);8.若a和b均为int变量,以下语句的功能是____交换a和b的值_________。

a+=b;b=a-b;a-=b;9.在scanf函数调用中,可以在格式字符和%之间加一星号*,它的作用是___本输入项在读入后不赋给相应的变量_____。

10.a++、++a、a=a+1都能实现使变量a的值增1,与之等效的表达式还有__ a+=1________分支结构1.若执行下面的程序时从键盘上输入5,则输出结果是______main(){int x;scanf("%d",&x);if(x++>5)printf("%d\n",x);else printf("%d\n",x--);}A) 7 B) 6C) 5 D) 42.已知a,b,m,n,c,d变量的定义如下,则执行完下列表达式后m,n的值为______ int a=3,b=4,m=0,n=0,c=3,d=4;(m=a<b)||(n=c<d);A) m=1 n=1 B) m=1 n=0C) m=0 n=0 D) m=0 n=13.表达式(!7<5+1>0+4<5)的值是______A) 3 B) 2 C) 1D) 04.假设在程序中,x,y,z均被定义成整型,且已赋大于1的值,则下列能正确表示1/(xyz)的表达式是______A) 1/x*y*z B)1/(x*y*z)C) 1/x/y/(float)z D) 1.0/x/y/z5.已知字母a的ASCII十进制代码为97,则执行以下语句后的输出为______ char a='a';a--;printf("%d,%c\n",a+'2'-'0',a+'3'-'0');A) b,c B) a--运算不合法,故有语法错C) 98,cD) 格式描述和输出项不匹配,输出无定值6.为了避免嵌套的条件语句if-else的二义性,C语言规定:else与_____配对。

A) 缩排位置相同的if B) 其之前最近的ifC) 其之后最近的if D) 同一行上的if7.若给定条件表达式(M)?(a++): (a--),则其中表达式M______A) 和(M==0)等价B) 和(M==1)等价C) 和(M!=0)等价D) 和(M!=1)等价8.若有说明语句char s='\092'; 则该语句______A) 使s的值包含1个字符B) 说明不合法,s的值不确定C) 使s的值包含4个字符D) 使s的值包含3个字符9.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为______A) 4 B) 3 C) 2 D) 110.有如下的变量定义:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是______A) a+=a-=(b=4)*(a=3)B) x%(-3) C)a=a*3=2 D) y=float(i) 11.有以下变量定义:int k=7,x=12;则下列值为3的表达式是______A) x%=(k%=5) B) x%=(k-k%5)C) x%=k-k%5 D) (x%=k)-(k%=5)12.设 int a=3 ; 则表达式 a<1&& - - a>1 的运算结果和a的值分别是______ A) 0和2 B) 0和3 C) 1和2 D) 1和313.假定所有变量均已正确定义,下列程序段运行后x的值是______ ok1=1;ok2=2;ok3=3;x=15;if(!ok1) x--;else if(ok2) if(ok3) x=3;else x=4;A) 14 B) 4 C) 15 D) 314.下面程序的输出结果是______void main(){int x=1,a=0,b=0;switch(x){ case 0 :b++;case 1 :a++;case 2 :a++;b++;}printf(“a=%d,b=%d\n”,a,b);}A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=215.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果分别是_____void main( ){ int x;scanf("%d",&x);if(x++>5)printf("%d",x);else printf("%d\n",x--);}A) 7和5 B) 6和3 C) 7和4 D) 6和416.有定义:int a=1,b=3,c=5,d=4,x;则执行完下面一段程序后x的值是 ______。

if(a<b)if(c<d) x=1;elseif(a<c)if( b<d) x=2;else x=3;else x=6;else x=7;A) 1 B) 2 C) 3 D) 617.能正确表示a和b同时为正或同时为负的表达式是________。

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>018.当a=3,b=2,c=1时,表达式f=a>b>c的值是 __0____ 。

19.当c的值不为0 时,在下列选项中能正确将c的值赋给变量a、b的是________。

A) c=b=a B) (a=c)||(b=c) C) (a=c)&&(b=c)D) a=c=b20.下面程序程序后输出结果是_____。

相关主题