欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    实验习题答案.doc

    • 资源ID:11605090       资源大小:134KB        全文页数:20页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验习题答案.doc

    C语言概述1若有源程序文件t1.c,编译后生成的目标文件名是_t1.obj_,连接后生成的文件名是_t1.exe_,它们位于磁盘什么位置? 默认情况下是obj和源文件在同一目录下,exe在源文件目录下的debug目录下,可以在编译环境中设置到其他地方。2程序1_3.c中输出的10!值是多少?3628800数据与数据类型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)/108数字字符0的ASCII的值为48,下面程序运行后输出结果是_。main()char a=1,b=2; printf("%c,",b+); printf("%dn",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=%dn",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函数调用中,可以在格式字符和%之间加一星号*,它的作用是_本输入项在读入后不赋给相应的变量_。10a+、+a、a=a+1都能实现使变量a的值增1,与之等效的表达式还有_ a+=1_分支结构1若执行下面的程序时从键盘上输入5,则输出结果是_ main() int x; scanf("%d",&x); if(x+>5)printf("%dn",x); else printf("%dn",x-); A)7B)6C)5D)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=1B)m=1 n=0C)m=0 n=0D)m=0 n=13表达式(!7<5+1>0+4<5)的值是_A)3B)2C)1D)04假设在程序中,x,y,z均被定义成整型,且已赋大于1的值, 则下列能正确表示1/(xyz)的表达式是_A)1/x*y*z B)1/(x*y*z)C)1/x/y/(float)zD)1.0/x/y/z5已知字母a的ASCII十进制代码为97,则执行以下语句后的输出为_char a=a;a-;printf("%d,%cn",a+2-0,a+3-0);A) b,cB) a-运算不合法,故有语法错 C) 98,cD) 格式描述和输出项不匹配,输出无定值6为了避免嵌套的条件语句if-else的二义性,C语言规定:else与_配对。A) 缩排位置相同的ifB) 其之前最近的ifC) 其之后最近的ifD) 同一行上的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) 4B) 3C) 2D) 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=2D) y=float(i)11有以下变量定义:int k=7,x=12;则下列值为3的表达式是_A) x%=(k%=5)B) x%=(k-k%5)C) x%=k-k%5D) (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) 14B) 4C) 15D) 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=%dn”,a,b);A) a=2,b=1B) a=1,b=1C) a=1,b=0D) a=2,b=215. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果分别是_ void 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和416有定义:int a=1,b=3,c=5,d=4,x; 则执行完下面一段程序后x的值是 _。if(a<b)if(c<d) x=1;else if(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=aB) (a=c)|(b=c)C) (a=c)&&(b=c)D) a=c=b20下面程序程序后输出结果是_。void main()int a=3,b=2,c=1,t; if(a>b>c) t=1; else if(a<b<c) t=0; else t=-1; printf("%dn",t);A) 1 B) 0 C) -1 D) 不确定的数21. 以下程序运行后的输出结果是_3 5 3_。void main()int a=3,b=4,c=5,t=99; if(a<b<c) t=a;a=c;c=t; if(a>c,c>b) t=b;b=a;a=t; printf("%d %d %dn",a,b,c); 22. 以下程序运行后的输出结果是_2 1_。void 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; printf("%d %dn",a,b); 23有以下程序void main( ) int i=1,j=1,k=2; if(j+|k+)&&i+) printf( "%d,%d,%dn",i,j,k ); 执行后输出结果是_。A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,324以下程序执行后输出结果是_。void main( ) int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d+1); else printf("%d",+d+1); printf("%dn",d); A) 2 B) 3 C) 43 D) 4425以下程序执行后输的结果是_-4_ 。main( ) int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3;printf("%dn",x);循环控制1对下面程序段描述正确的是_。 int k=10; while(k=0) k=k-1;A) while循环执行10次 B) 循环是无限循环C) 循环体语句一次也不执行 D) 循环体语句执行一次2语句while(!E);中的表达式!E等价于_.A) E=0 B) E!=1 C) E!=0 D) E=13下面程序段的运行结果是_.int n=0;while(n+<=2); printf("%d",n);A) 2 B) 3C) 4 D) 有语法错4下面程序的运行结果是_. #include<stdio.h> main() int num=0; while(num<=2) num+; printf("%dn",num); A)1 B)1 C) 1 D) 1 2 2 2 3 3 45以下程序段_. x=-1; do x=x*x; while(!x); A) 是死循环 B) 循环执行二次 C) 循环执行一次 D) 有语法错误6如下程序段 _.int x=3;doprintf("%dn",x-=2);while(!(-x); A) 输出的是1 B) 输出的是1和-2 C) 输出的是3和0 D) 是死循环7下面程序的运行结果是_.#include<stdio.h>main()int y=10; doy-;while(-y); printf("%dn",y-); A) -1 B) 1 C) 8 D) 08若i为整型变量,则以下循环执行次数是_. for(i=2;i=0;)printf("%d",i-);A) 无限次 B) 0次 C) 1次 D) 2次9执行语句for(i=1;i+<4; ); 后变量i的值是_.A) 3 B) 4 C) 5 D) 不定10以下正确的描述是_.A) continue语句的作用是结束整个循环的执行B) 只能在循环体内和switch语句体内使用break语句C) 在循环体内使用break语句或continue语句的作用相同D) 从多层循环嵌套中退出时,只能使用goto语句11. 运行下面程序时,从键盘输入20357<CR>,则下面程序的运行结果是_66277879_。#include<stdio.h>main( )int c; while(c=getchar()!=n) switch(c-2)case 0: case 1: putchar(c+4); case 2: putchar(c+4); break; case 3: putchar(c+3); default: putchar(c+2); break; putchar(n); 12.下面程序段是从键盘输入的字符串中统计数字字符的个数,用换行符结束循环。请填空。 int n=0,c; c=getchar(); while(_c!=n_) if(_c>=0&&c<=9_)n+; c=getchar(); 13下面程序的功能是用"辗转相除法"求两个正整数的最大公约数。请填空。 #include<stdio.h> main() int r,m,n; scanf("%d%d",&m,&n); if(m<n)_ r=m;m=n;n=r;_; /* 保证m总是是大于n */ r=m%n; while(r)m=n;n=r;r=_ m%n_; printf("%dn",n); 14下面程序的运行结果是_s=254_. #include <stdio.h> main() int a,s,n,count; a=2;s=0;n=1;count=1; while(count<=7)n=n*a;s=s+n;+count; printf("s=%d",s); 15下面程序段的运行结果是_a=-5_.i=1;a=0;s=1;doa=a+s*i;s=-s;i+;while(i<=10);printf("a=%d",a);16下面程序段的运行结果是_8_. i=1;s=3; dos+=i+; if(s%7=0)continue; else +i; while(s<15); printf("%d",i);17下面程序用于打印出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。完成程序。main( )int i,a,b,c; for(i=100;i<1000;i+ )a = i/100; b =_i/10%10_; c = i%10; if(_i=a*a*a+b*b*b+c*c*c_) printf( "%d ", i);数组1. 定义如下变量和数组 :int k ;int a33= 1, 2, 3, 4, 5, 6, 7, 8, 9 ;则下面语句的输出结果是( )for(k=0;k<3;k+) printf(%d,ak2-k);A、357B、369 C、 159D、 1472. 执行下面的程序段后,变量k中的值为()int k=3,s2;s0=k;k=s1*10;A、不定值B、33C、30D、103. 设有数组定义:char array ="China"; 则数组 array所占的空间为( )A、4个字节 B、5个字节 C、6个字节D、7个字节4. 如下程序的输出结果是( )void main( ) int n5=0,0,0,i,k=2;for(i=0;i<k;i+)ni=ni+1;printf("%dn",nk);A、不确定的值B、2C、1D、05. 有如下程序void main( ) int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i<3;i+)for(j=0;j<=i;j+)s+=aij;printf("%dn",s);该程序的输出结果是()A、18B、19C、20D、216. 以下程序的输出结果是()void main( ) inti,x33=1,2,3,4,5,6,7,8,9;for(i=0;i<3;i+)printf("%d,",xi2-i);A、1,5,9,B、1,4,7,C、3,5,7,D、3,6,9,7. 当执行下面的程序时,如果输入ABC,则输出结果是()#include "stdio.h"#include "string.h"void main( ) char ss10="1,2,3,4,5"gets(ss);strcat(ss,"6789");printf("%sn",ss);A、ABC6789B、ABC67C、12345ABC6D、ABC4567898以下程序段的输出结果是( )char s = "141141abct"printf("%dn",strlen(s);A、9B、12C、13D、149. 下面是对s的初始化,其中不正确的是( )A、char s5=“abc” ;B、char s5=a,b,c;C、char s5=“”; D、char s5=”abcde”10. 以下程序的输出结果是_ abc_void main( )char s ="abcdef" s3= 0;printf("%sn",s);11. 下列程序段的输出结果是_ Hello_void main( ) char b="Hello,you"b5=0;printf("%s n", b );12. 在C语言中,二维数组元素在内存中的存放顺序是_行优先_13. 设有定义语句 “ int a34=1,2,3 ” ,则a11值为_0_,a21的值为_0_ 14. 若在程序中用到 “ putchar() ” 函数时,应在程序开头写上包含命令#include <stdio.h>_ ,若在程序中用到 “ strlen() ” 函数时,应在程序开头写上包含命令_#include string.h_15. 下面程序的功能是输出数组s中最大元素的下标,请填空。 void main() int k,p; int s=1,-9,7,2,-10,3; for(p=0,k=p;p<6;p+) if (sp>sk) _k=p_ ; printf("%dn",k); 16. 以下程序执行时输入Language Programming<CR>的结果是_Language_ #include <stdio.h> void main() char str30; scanf("%s",str); printf("str=%sn",str); 17. 以下程序可把输入的十进制长整型数以十六进制数的形式输出,请填空。 void main() char b17="0123456789ABCDEF" int c64,d,i=0,base=16; long n; printf("Enter a number:n"); scanf("%1d",&n); doci= _ n % 16_;i+;n=n/base;while(n!=0); printf("Transmite new base:n"); for (-i;i>=0;-i)d=ci;printf("%c",b _ d_ ; 18. 以下数组定义中,错误的是( C )A、 int a=1,2,3;B、 int a5=1,2,3;C、 int a3=1,2,3,4;D、 int a5,b;19以下数组定义中,正确的是( B )A、 int n=4,an=1,2,3,4; B、 int a2=1,2,3,4;C、 int a2=1,2,3,4;D、 int a=1,2,3,4;20.设有如下定义:int a810;在C中一个整数占用4字节,设a的起始地址为1000,则a11的地址是( )A、 1000B、 1004C、 1036 D、 104421. 有数组定义:int a 3=1,2,3,4,5,6,7,8,9,则a12的值是( )A、 2B、 5C、 6D、 822.设已定义 char str6=a,b,0,c,d,0; 执行语句 printf("%s",str) 后,输出结果为( )A、 aB、 abC、 abcdD、 ab0cd023引用数组元素时,数组元素下标不可以是( )A、 字符常量B、 整型变量 C、 字符串D、 算术表达式24下面程序段的运行结果是( )void main()char a="abcd",b="123"strcpy(a,b);printf("%sn",a);A、 123 B、 123dC、 abcd D、 abcd12325下面程序段的运行结果是( )void main()char a="123",b="abcd"if(a>b) printf("%sn",a);else printf("%sn",b);A、 123 B、 编译时出错C、 abcdD、 运行时出错函数 1. 有如下程序#include<stdio.h>long fib( int n)if(n>2) return(fib(n-1)+fib(n-2);else return(2);void main( ) printf("%dn",fib(3);该程序的输出结果是()A、2B、 4C、 6D、8 2. 在C语言中,函数的隐含存储类别是()A、 autoB、 staticC、 externD、 无存储类别3. 以下所列的各函数首部中,正确的是()A、 void play(var:Integer,var b:Integer)B、 void play(int a,b)C、 void play(int a,int b)D、 Sub play(a as integer,b as integer)4. 以下程序的输出结果是()A、 0B、 29C、 31D、 无定值fun(int x,int y,int z) z=x*x+y*y;main( ) int a=31;fun(5,2,a);printf("%d",a);5. 以下程序的输出结果是()f(int b ,int m,int n) int I,s=0; for(i=m;i<n;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、10B、18C、8D、156. 以下程序的输出结果是()A、1B、2C、3D、4long fun( int n) long s;if(n=1 | n=2)s=2;else s=n-fun(n-1);return s;main( ) printf("%ldn",fun(3); 7. 以下程序的输出结果是()int f( ) static int i=0; int s=1; s+=i;i+; return s; main( ) int i,a=0; for(i=0;i<5;i+) a+=f(); printf("%dn",a); A、20B、24C、25D、158. 以下程序的功能是调用函数fun计算:m=1-2+3-4+9-10,并输出结果。请填空。intfun(intn)intm=0,f=1,i;for(i=1;i<=n;i+)m+=i*f;f=_-f_;returnm;main()printf("m=%dn",_fun(10)_);9. 以下程序输出的最后一个值是_120_int ff(int n) static int f=l;f=f*n;return f;main( ) int i;for(i=1;i<=5;i+ ) printf("%dn",ff(i);10. 以下函数的功能是:求x的y次方,请填空。double fun( double x,int y) int i;double z;for(i=1, z=x; i<y;i+) z=z*_x_;return z;11. 以下正确的说法是()A、用户若需要调用标准库函数,调用前必须重新定义 B 、用户可以重新定义标准库函数,如若此,该函数将失去原有定义 C 、系统不允许用户重新定义标准库函数 D 、用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。 12. C 语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是()A、地址传递 B 、值传递 C 、有实参传给形参,再由形参传给实参 D 、由用户指定传递方式 13. 下面程序的输出是()int i=2 ; printf(“%d%d%d”,i*=2,+i,i+) ; A、 8 , 4 , 2 B 、 8 , 4 , 3 C、 4 , 4 , 5 D 、 4 , 5 , 6 14. 以下不正确的说法是()A 、 register 变量可以提高变量使用的执行效率 B 、 register 变量由于使用的是 CPU 的寄存器,其数目是有限制的 C 、 extern 变量定义的存储空间按变量类型分配 D 、全局变量使得函数之间的 “ 耦合性 ” 更加紧密,不利于模块化的要求 15. C 语言函数返回类型的默认定义类型是_int_ 16. 函数的实参传递到形参有两种方式:_传值_ 和_传址_ 。 17. C 语言变量按其作用域分为_全局变量_和_局部变量_ 。按其生存期分为_静态_和_动态_ 。 18. 已知函数定义 : , 其函数声明的两种写法为_ void dothat(int n,double x);_ , _ void dothat(int ,double );_ 。 19. C 语言变量的存储类别有_auto_ ,_static_ ,_register_ 和_extern_ 。 20. 在一个 C 程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的存储类别为 _extern_。结构体习题1. 下面程序的运行结果是_. void main() struct cmplxint x; int y; cnum2=1,3,2,7; printf("%dn",cnum0.y/cnum0.x*cnum1.x); a)0 b)1 c)3 d)62. 以下程序的运行结果是_10,x_. struct n int x; char c; ;void main() struct n a=10,x; func(a); printf("%d,%c",a.x,a.c); func(struct n b) b.x=20; b.c=y; 3. 根据下面的定义,能打出字母M的语句是 。struct perso

    注意事项

    本文(实验习题答案.doc)为本站会员(时光煮雨)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开