欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

C语言练习题1-5及参考答案

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

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

C语言练习题1-5及参考答案

练习题1与参考答案1. 单项选择题1以下并非C语言的特点的是.A.  C语言简洁和紧凑B. 能够编制出功能复杂的程序C.  C语言可以直接对硬件进行操作D.  C语言移植性好答B2一个C程序的执行是从.A.  main<>函数开始,直到main<>函数结束B. 第一个函数开始,直到最后一个函数结束C. 第一个语句开始,直到最后一个语句结束D.  main<>函数开始,直到最后一个函数结束答A3在C程序中,main<>的位置.A. 必须作为第一个函数B. 必须作为最后一个函数C. 可以任意D. 必须放在它所调用的函数之后答C4一个C程序是由.A. 一个主程序和若干子程序组成B. 一个或多个函数组成C. 若干过程组成D. 若干子程序组成答B5下列说法正确的是.A. 在执行C程序时不是从main<>函数开始的B.  C程序书写格式限制严格,一行内必须写一个语句C.  C程序书写格式比较自由,一个语句可以分行写在多行上D.  C程序书写格式严格要求一行内必须写一个语句,并要求行号答C2. 填空题1一个C源程序至少有      个main<>函数和      个其他函数.答一  若干2任何C语句必须以结束.答分号3C语言源程序的基本单位是.答函数4C编译程序的功能是.答将C源程序编译成目标代码31 / 31练习题2与参考答案1. 单项选择题1以下字符串为标识符的是.A. _MY                 B. 2_2222                     C. short                     D. LINE 5答A2下列符号可以作为变量名的是.A. +a                    B. *p                            C. _DAY                    D. next day答C3设c是字符变量,则以下表达式正确的是.A. c=666               B. c='c'                        C. c="c"                    D. c="abcd"答B423+'m'+3.6-123.45/'b'的结果是型数据.A. char                  B. double                      C. int                 D. long int答3.6和123.45均为double型,运算结果也是double型.本题答案为B.5若变量已正确赋值,以下符合C语言语法的表达式是.A. a=a+7;                                          B. a=7+b+c,a+C. int<12.3%4>                                   D. a=a+7=c+b答选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式<a+7>而非变量赋值是不正确的.本题答案为B.6整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是.A. x=<x=1+2,x*2>                            B. x=y>2?6:5C. x=9-<-y>-<-y>                            D. x=y*<int><4.8/2>答选项A的计算过程x=1+2=3,再计算x=x*2=6;选项B的计算过程y>2为真,x=6;选项C的计算过程式中有两个-运算,最后y=1,x=9-1-1=7;选项D的计算过程x=y*<int><4.8/2>=y*2=6.本题答案为C.7若定义int m=7,n=12;则能得到值为3的表达式是.A. n%=<m%=5>                            B. n%=<m-m%5>C. n%=m-m%5                            D. <n%=m>-<m%=5>答A、B、C、D选项各表达式的值分别是0、2、2、3.本题答案为D.8以下程序的运行结果是.#include <stdio.h>main<>    int i=5,j=6,m=i+j;    printf<"%d,%d,%dn",i,j,m>A. 6,6,11        B. 5,6,11        C. 5,6,12        D. 6,6,12答m=i+j等价于m=<i+>+j.本题答案为A.9以下程序的运行结果是.#include <stdio.h>void main<>    double f=3.14159;    int n;    n=<int><f+10>%3;    printf<"%dn",n>A. 1                             B. 0                                 C. 2                             D. 3答f+10=13.14159,<int><f+10>=13,13%3=1.本题答案为A.10以下程序的运行结果是.#include <stdio.h>void main<>    int n,i=2,j=4;    n=<+i=j->    printf<"%dn",n>A. 0                             B. 1                                 C. 2                             D. 3答+i返回3,j-返回4,两者不等,故n=0.本题答案为A.2. 填空题1表达式语句与表达式的不同是.答语句必须以分号结尾,而表达式结尾没有分号;语句可以出现在函数体中数据定义或声明语句后面的任何位置,而表达式只能出现在语句中规定的位置或表达式中嵌套出现.2在C语言中可以利用将一个表达式的值转换成指定的类型.答强制类型转换3写出完成下列功能的表达式:· 如果变量c是大写字母,则将c转换成对应的小写,否则c的值不改变.      · 如果d是数字,则将d转换成相应的整数,否则d的值不改变.      · 返回两个整数x、y中较大者.      · 返回三个整数x、y和z中最大者.      答 c=<c>='A' && c<='Z'> ? c-'A'+'a' : c d=<d>='0' && d<='9'> ? d-'0' : d <x>y> ? x : y <x>y> ? <x>z ? x : z> : <y>z ? y : z> 或 <x>y && x>z> ? x : <y>z ? y : z>4以下程序的运行结果是.#include <stdio.h>#include <string.h>main<>   char s="abn'rb"   printf<"%d,%dn",sizeof<s>,strlen<s>>答字符串s由字符'a'、'b'、'n'、''、'''、'r'、'b'等7个字符组成,故长度为7,但字符串本身有一个结束标志'0'.所以,s的长度为7,在内存中占用8个字节.输出为:8,7.5以下程序的运行结果是.#include <stdio.h>main<>    int a=2,b=4,c=6,x,y;    y=<x=a+b>,<b+c>    printf<"y=%d,x=%dn",y,x>答结果为y=6,x=6.6以下程序的运行结果是.#include <stdio.h>main<>    char a,b;    a='a'b='b'    a=a-32;b=b-32;    printf<"%c,%c,%d,%dn",a,b,a,b>答A,B,65,667以下程序的运行结果是.#include <stdio.h>main<>    int i,j,x,y;    i=5;j=7;    x=+i;y=j+;    printf<"%d,%d,%d,%dn",i,j,x,y>答执行x=+i后,i=6,x=6;执行y=j+后,j=8,y=7;所以输出为:6,8,6,7.8以下程序的运行结果是.#include <stdio.h>main<>    int a=1;    char c='a'    float f=2.0;    printf<":%dn",a+2!=c-100>     printf<":%dn",<a>c>>=<f>4>>     printf<":%dn",!a=!f>     printf<":%dn",<!a&&1>!=<!c|1>>     printf<":%dn",<!a>2>?3:0><<<f!=1>?0:1>     printf<":%dn",<1,2,3>=<3,3,3>>答:1 a+2=3,c-100=-3,表达式结果=1真:1a>c的结果是0假,f>4的结果是0,表达式结果=1:1!a的结果是0,!f的结果是0,表达式结果=1:1!a&&1的结果是0,!c|1的结果是1,表达式结果=1:0!a>2的结果是0,<!a>2>?3:0的结果是0,f!=1的结果是1,<f!=1>?0:1的结果是0,表达式结果=0:1<1,2,3>表达式的结果是3,<3,3,3>的结果是3 练习题3与参考答案1. 单项选择题1以下说法正确的是.A. 输入项可以为一个实型常量,如scanf<"%f",3.5>B. 只有格式控制没有输入项也能进行正确输入,如scanf<"%d">C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf<"%4.2f",&f>D. 当输入数据时,必须指明变量的地址,如scanf<"%f",&f>答D2若a为整型变量,则以下语句.a=-2L;printf<"%dn",a>A. 赋值不合法                                         B. 输出值为-2C. 输出为不确定值                                  D. 输出值为2答B3若x和y均定义为int型,z定义为double型,以下scanf<>函数调用语句不合法的是.A. scanf<"%d%lx,%le",&x,&y,&z>             B. scanf<"%2d*%d%lf",&x,&y,&z>C. scanf<"%x%*d%o",&x,&y>                  D. scanf<"%x%o%6.2f",&x,&y,&z>答scanf<>函数中没有精度控制.本题答案为D.4若a,b,c均定义为int型,要给它们输入数据,正确的输入语句是.A. read<a,b,c>                                                 B. scanf<"%d%d%d",a,b,c>C. scanf<"%D%D%D",a,b,c>                    D. scanf<"%d%d%d",&a,&b,&c>答D 5若有定义和语句:int n=10;printf<"%n",n>其输出结果是.A. 输出10            B. 输出一空行             C. 没有输出         D. 编译不通过答D6若a是float型变量,b是unsigned型变量,以下输入语句中合法的是.A. scanf<"%6.2f%d",&a,&b>                     B. scanf<"%f%n",&a,&b>C. scanf<"%f%3o",&a,&b>                 D. scanf<"%f%f",&a,&b>答C7字母a的ASCII码为97,则下列语句的运行结果为.char a='a'a-;printf<"%d,%cn",a+'2'-'0',a+'3'-'0'>A. b,c                                               B. a-运算不合法,故有语法错C. 98,c                                              D. 格式描述和输出项不匹配,输出无定值答C8若k1,k2,k3,k4均为int型变量,为了将整数10赋给k1和k3,将整数20赋给k2和k4,则对应以下scanf<>函数调用语句的正确输入方式是.scanf<"%d%d",&k1,&k2>scanf<"%d,%d",&k3,&k4>A. 1020B. 10 20C. 10,20D. 10 20102010 2010,2010,20答D9有如下程序,输入数据12345 678后,x的值是    ,y的值是    .#include <stdio.h>main<>    int x;    float y;    scanf<"%3d%f",&x,&y> A. 12345                 B. 123                          C. 45                           D.345答 B  A10有如下程序,输入数据25,13,10后,正确的运行结果是.#include <stdio.h>main<>    int x,y,z;    scanf<"%d%d%d",&x,&y,&z>    printf<"x+y+z=%dn",x+y+z>A. x+y+z=48                                     B. x+y+z=35C. x+y+z=38                                     D. 不确定值答输入的数据与scanf<>函数的格式不匹配.本题答案为D.11有如下程序,输入数据12 345后,x的值是    ,y的值是    .#include <stdio.h>main<>    int x;    float y;    scanf<"%3d%f",&x,&y> A. 12                      B. 123                   C. 12345                      D. 0 A. 12.000000           B. 345.000000              C. 12345.000000           D. 0.000000答 A   B12有如下程序,输入数据9876543210后,程序的运行结果是.#include <stdio.h>main<>    int a;    float b,c;    scanf<"%2d%3f%4f",&a,&b,&c>    printf<"a=%d,b=%f,c=%fn",a,b,c>A. a=98,b=765,c=4321                                     B. a=10,b=432,c=8765C. a=98,b=765.000000,c=4321.000000                     D. a=98,b=765.0,c=4321.0答C13以下程序的运行结果是.#include <stdio.h>main<>    float a=3.1415;    printf<"|%6.0f|n",a>A. |3.1415|             B. | 3.0|          C. | 3|            D. | 3.|答C14以下程序的运行结果是.#include <stdio.h>main<>    float a=3.1415;    printf<"|%06.0f|n",a>A. |000003|            B. |3.1415|             C. |00003.0|           D. | 3|答A15以下程序的运行结果是.#include <stdio.h>main<>    float a=3.1415;    printf<"|%-6.0f|n",a>A. |3 |              B. |000003|            C. |3.1415|                    D. |3.0 |答A 16以下程序的运行结果是.#include <stdio.h>main<>     int i=010,j=10;    printf<"%d,%dn",+i,j->A. 11.10                B. 9,10                  C. 010,9                       D. 10,9答B17以下程序的运行结果是.#include <stdio.h>main<>    int x=10,y=10;    printf<"%d,%dn",x-,-y>A. 10,10                B. 9,9                    C. 9,10                         D. 10,9答D2. 填空题1以下程序的运行结果是.#include <stdio.h>main<>    float f=3.1415927;    printf<"%f,%5.4f,%3.3f",f,f,f>答3.141593,3.1416,3.1422以下程序的运行结果是.#include <stdio.h>main<>    float f=3.5;    printf<"%f,%g",f,f>答3.500000,3.53以下程序的运行结果是.#include <stdio.h>main<>    float f=31.41592;    printf<"%f,%e",f,f>答31.415920,3.141592e+0014以下程序的运行结果是.#include <stdio.h>main<>    int x=0177;    printf<"%3d,%6d,%6o,%6x,%6un",x,x,x,x,x>答127, 127, 177, 7f, 1275以下程序的运行结果是.#include <stdio.h>main<>    int x=0177;    printf<"%-3d,%-6d,%-6o,%-6x,%-6un",x,x,x,x,x>答127,127 ,177 ,7f ,127 6以下程序的运行结果是.#include <stdio.h>main<>    char c='A'+10;    printf<"c=%cn",c>答c=K7以下程序输入123456后,其运行结果是.#include <stdio.h>main<>    int a,b;    scanf<"%2d%3d",&a,&b>    printf<"a=%d,b=%dn",a,b>答a=12,b=3458以下程序输入ABC后,其运行结果是.#include <stdio.h>main<>    char c;    scanf<"%3c",&c>    printf<"c=%cn",c>答c=A9以下程序输入100后,其运行结果是.#include <stdio.h>main<>    int n;    scanf<"%o",&n>    printf<"n=%dn",n>答n=6410以下程序输入x=1.23,y=50后,其运行结果是.#include <stdio.h>main<>    float x,y;    scanf<"x=%f,y=%f",&x,&y>    printf<"x=%7.2f,y=%7.2fn",x,y>答x= 1.23,y= 50.0011执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82,c1='A',c2='a'正确的数据输入形式是.#include <stdio.h>main<>    int a,b;    float x,y;    char c1,c2;    scanf<"a=%d b=%d",&a,&b>    scanf<"x=%f y=%f",&x,&y>    scanf<"c1=%c c2=%c",&c1,&c2>    printf<"a=%d,b=%d,x=%g,y=%g,c1=%c,c2=%cn",a,b,x,y,c1,c2>答a=3 b=7x=8.5 y=71.82c1=A c2=a3. 编程题1编写一个程序,求出任一输入字符的ASCII码.解程序如下:/*文件名:exci3_1.cpp*/ VC+6.0#include <stdio.h>main<>    char c;    printf<"输入字符:">    scanf<"%c",&c>    printf<"字符%c的ASCII码为%dn",c,c>2编写一个程序,输入一个字符,依次输出其前导字符、该字符和后续字符.解程序如下:/*文件名:exci3_2.cpp*/ VC+6.0#include <stdio.h>#define pi 3.14159main<>    char c;    printf<"输入一个字符:">    scanf<"%c",&c>    printf<"输出结果:%c,%c,%cn",c-1,c,c+1>3编写一个程序,输出任意一个十进制整数对应的八进制数和十六进制数.解直接使用printf<>的格式符输出八进制数和十六进制数.程序如下:/*文件名:exci3_3.cpp*/ VC+6.0#include <stdio.h>main<>    int i;    printf<"输入一个整数:">    scanf<"%d",&i>    printf<"%d<10><=>%o<8>n",i,i>    printf<"%d<10><=>%x<16>nn",i,i>4编写一个程序,从键盘输入圆锥体的半径r和高度h,计算其体积.解圆锥体体积的计算公式为:v=×r×r×h/3程序如下:/*文件名:exci3_4.cpp*/ VC+6.0#include <stdio.h>main<>    float r,h,pi=3.1415,v;    printf<"圆锥半径,高度:">    scanf<"%f,%f",&r,&h>    v=pi*r*r*h/3.0;    printf<"圆锥体积=%gnn",v>练习题4与参考答案1. 单项选择题1if后面的逻辑表达式之值.A. 只能是0或1B. 只能是正整数或负整数C. 只能是整型或字符型数据D. 可以是任何类型的数据答A 2为了避免嵌套的if-else语句的二义性,C语言规定else总是与组成配对关系.A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前最近的未配对的ifD. 同一行上的if答C 3选择出合法的if语句设int x,a,b,c;.A. if <a=b> x+;B. if <a=<b> x+;C. if <a<>b> x+;D. if <a=>b> x+;答选项B、C、D中的比较运算符不正确,在选项A中,a=b返回b,若b为0或空字符,则为假,否则为真.本题答案为A.4以下不正确的if语句是.A. if <x>y>B. if <x=y> && <x!=0> x+=y;C. if <x!=y> scanf<"%d",&x>else scanf<"%d",&y>D. if <x<y> x+;y-;答B.应改为if <x=y && x!=0> x+=y;5若定义float x;int a, b;,则正确的switch语句是.A. switch<x> case 1.0:printf<"*n"> case 2.0:printf<"*n"> B. switch<x> case 1.2:printf<"*n"> case 3:printf<"*n"> C. switch<a+b> case 1:printf"*n" case 1+2:printf<"*n"> D. switch<a+b> case 1:printf<"*n"> case 2:printf<"*n"> 答D 6执行下列程序,输入为1的运行结果是,输入为3的运行结果是.#include <stdio.h>main<> int k; scanf<"%d",&k> switch<k> case 1:printf<"%d ",k+> break; case 2: printf<"%d ",k+> case 3: printf<"%d ",k+> break; case 4: printf<"%d ",k+> default:printf<"Full!n"> A. 1 B. 2 C. 2 3 4 5 D. 1 2 3 4 A. 3 B. 4 C. 3 4 D. 4 5答 A A 7执行下列程序,输入为1的运行结果是,输入为3的运行结果是.#include <stdio.h>main<> int k; scanf<"%d",&k> switch<k> case 1: printf<"%d ",k+> case 2: printf<"%d ",k+> case 3: printf<"%d ",k+> case 4: printf<"%d ",k+> break; default:printf<"Full!n"> A. 1 B. 2 C. 2 3 4 5 D. 1 2 3 4 A. 3 B. 4 C. 3 4 D. 4 5答 D C 8以下程序的运行结果是.#include <stdio.h>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<"a=%d,b=%dn",a,b>A. a=2,b=1B. a=1,b=1C. a=1,b=0D. a=2,b=2答A2. 填空题1有定义int x;则"x是偶数"的表达式是.答x % 2 = 02有定义int a,b;则"a是b的整数倍"的表达式是.答a % b = 03有定义int a,b,c;它们表示三个边长,则能够构成一个直角三角形的条件是.答a*a+b*b=c*c | a*a+c*c=b*b | b*b+c*c=a*a4有定义int a,b,c;它们表示三个边长,则能够构成一个三角形的条件是.答<a+b<c && a+c<b && b+c<a>5以下程序的运行结果是.#include <stdio.h>main<>int k=2;switch <k>case 1:printf<"%dn",k+>break;case 2:printf<"%d ",k+>case 3:printf<"%dn",k+>break;case 4:printf<"%dn",k+>default:printf<"Full!n">答k=2,执行case 2分支,k+返回2,此时k=3,输出2,后跟一空格.由于没有break语句,继续执行case 3分支,k+返回3,此时k=4,输出3,由于有break语句,退出switch语句.所以输出为:2 3.6以下程序的运行结果是.#include <stdio.h>main<>int s=1,t=1,a=5,b=2;if <a>0>s+;if <a>b>t+=s;else if <a=b>t=5;elset=2*s;printf<"s=%d,t=%dn",s,t>答a>0,s变为2.a>b为真,t=t+s=3.所以输出为:s=2,t=3.7以下程序的运行结果是.#include <stdio.h> VC+6.0main<>int k=2;switch<k>case 1:printf<"%d ",k+>case 2:printf<"%d ",k+>case 3:printf<"%d ",k+>case 4:printf<"%d ",k+> break;default:printf<"Full!n">printf<"n">答k=2,执行case 2分支,k+返回2,此时k=3,屏幕输出2,后跟一空格.由于没有break语句,继续执行case 3分支,k+返回3,此时k=4,屏幕输出3,由于没有break语句,继续执行case 4分支,k+返回4,此时k=5,屏幕输出4,由于有break语句,退出switch语句.所以输出为:2 3 4.8以下程序的运行结果是.#include <stdio.h>main<>int x=0,y=2,z=3;switch<x>case 0:switch<y=2>case 1:printf<"*">break;case 2:printf<"%">break;case 1:switch<z>case 1:printf<"$">case 2:printf<"*">break;default:printf<"#">答x=0,执行外层switch语句的case 0部分,y=2为真,则执行里层switch语句的case 1部分,输出"*",遇到break语句,退出里层的switch语句,由于里层的switch语句之后没有break语句,所以转而执行外层switch语句的case 1部分,这时z=3,故执行里层switch语句的default部分,输出"#",整个程序执行完毕.所以输出为:*#.3. 编程题1编写一个程序判断用户输入的字符是数字字符、字母字符还是其他字符.解在'0'到'9'之间的为数字字符,在'a'到'z'或'A'到'Z'之间的为字母字符;否则为其他字符.程序如下:/*文件名:exci4_1.cpp*/ VC+6.0#include <stdio.h>main<>char c;printf<"输入一个字符:">scanf<"%c",&c>if <c>='0' && c<='9'>printf<"n%c是数字字符nn",c>else if <<c>='a' && c<='z'> | <c>='A' && c<='Z'>>printf<"n%c是字母字符nn",c>elseprintf<"n%c是其他字符nn",c>2假设今天是星期日,编写一个程序,求123456天后是星期几.解星期是7天一个轮回,由于今天是星期日,所以123456除以7的余数即为星期几.程序如下:/*文件名:exci4_2.cpp*/ VC+6.0#include <stdio.h>main<>int n=123456;n=n%7;printf<"n星期">switch<n>case 0:printf<"天"> break;case 1:printf<"一"> break;case 2:printf<"二"> break;case 3:printf<"三"> break;case 4:printf<"四"> break;case 5:printf<"五"> break;case 6:printf<"六"> break;printf<"nn">3编写一个程序,输入年号和月份,判断该年是否为闰年,并根据给出的月份判断是什么季节和该月有多少天?闰年的条件是年号能被4整除但不能被100整除,或者能被400整除.解直接根据闰年的定义求解,如果是闰年,2月份为29天;否则为28天,其他月份相同.规定35月为春季,68月为夏季,911月为秋季,1、2和12月为冬季.本题程序如下:/*文件名:exci4_3.cpp*/ VC+6.0#include <stdio.h>main<>int y,m,leap,season,days;printf<"年份,月份:">scanf<"%d,%d",&y,&m>if <<y%4=0 && y%100!=0> | <y%400=0>>leap=1;elseleap=0;if <m>=3 && m<=5>season=1;else if <m>=6 && m<=8>season=2;else if <m>=9 && m<=11>season=3;elseseason=4;switch <m>case 1:case 3:case 5:case 7:case 8:case 10:case 12:days=31;break;case 4:case 6:case 9:case 11:days=30;break;case 2:if <leap=1>days=29; elsedays=28;printf<"%d年%s闰年n",y,<leap=1 ? "是" : "不是">> printf<"该季度是">switch<season>case 1:printf<"春季n">break;case 2:printf<"夏季n">break;case 3:printf<"秋季n">break;case 4:printf<"冬季n">break;printf<"当月天数:%dn",days>4报数游戏.A、B、C、D、E、F、G、H共8人站成一排,按图4.1所示的方法从1开始报数.问谁先报到123456?ABCDEFGH1 2 3 4 5 6 7 81413121110 915161718192021222827262524232930图4.1 游戏报数过程解从图4.1中看到1到14是一个来回,再重复这一过程,所以只需对123456除以14的余数加以判断即可.程序如下:/*文件名:exci4_4.cpp*/ VC+6.0#include <stdio.h>main<>int n=123456,i;i=n%14;printf<"n报数到%d的人是",n>switch<i>case 1:printf<"A">break;case 2:case 14:printf<"B">break;case 3:case 13:printf<"C">break;case 4:case 12:printf<"D">break;case 5:case 11:printf<"E">break;case 6:case 10:printf<"F">break;case 7:case 9:printf<"G">break;case 8:printf<"H">break;printf<"n">程序的运行结果:报数到123456的人是D5编写一个程序,求ax2+bx+c=0方程的根.解先计算d=b2-4ac,再根据d是大于0、等于0还是小于0分别求根.程序如下:/*文件名:exci4_5.cpp*/ VC+6.0#include <stdio.h>#include <math.h>int func<float a,float b,float c,float *x1,float *x2>float d;d=b*b-4*a*c;if <d>0>*x1=<-b+sqrt<d>>/<2*a>*x2=<-b-sqrt<d>>/<2*a>return 2;else if <d=0>*x1=<-b>/<2*a>return 1;else return 0;main<>float a,b,c,x1,x2,n;printf<"输入a,b,c:">scanf<"%f,%f,%f",&a,&b,&c>n=func<a,b,c,&x1,&x2>if <n=2>printf<"两个根:n">printf<"tx1=%fn",x1>printf<"tx2=%fn",x2>else if <n=1>printf<"一个根:n">printf<"tx=%fn",x1>else printf<"没有根n">4.3 上机实验4与参考答案实验内容假定向国外邮寄包裹的收费如下计算:首先,包裹重量四舍五入到最近的15g的倍数,然后按表4.1收费.编写一个程序根据用户输入的包裹重量和里程计算邮费.表4.1 包裹邮费计算表重量<g>收费<元>15530945126014每足1000 km加1元75以上15每足1000 km加2元编程要求在程序中使用switch语句进行判断计算.解题思路和程序代码对于用户输入的重量w,采用如下公式四舍五入到最近的15g的倍数:x=<<w+7>/15>*15当w小于8时,x=0,但邮费应为5;当x=60或x>=60时,还应考虑里程费用.因此采用一个switch语句进行判定计算.程序如下:/*文件名:prog4.cpp*/ VC+6.0#include <stdio.h>main<> int p,w,f,x; printf<"重量,里程:"> scanf<"%d,%d",&w,&p> x=<<w+7>/15>*15; switch <x> case 0: f=5; break; case 15: f=5; break; case 30: f=9; break; case 45: f=12; break; case 60: f=14+<p/1000>*1; break; default: f=15+<p/1000>*2; break; printf<"邮费:%d元n",f>程序运行结果:重量,里程:80,2300邮费:19元练习题5与参考答案1. 单项选择题1语句while <!e>中的条件!e等价于.A. e=0B. e!=1C. e!=0D. e答!e等价于!<e!=0>,即e=0.本题答案为A.2下面有关for循环的正确描述是.A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在for循环中,不能用break语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来答D3C语言中.A. 不能使用do-while语句构成的循环B. do-while语句构成的循环必须用break语句才能退出C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环答D4C语言中while和do-while循环的主要区别是.A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句答A5以下程序段.int x=-1;do x=x*x; while <!x>A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误答C6下列语句段中不是死循环的是_.A. i=100; while <1> i=i%100+1; if <i=20> break; B. for <i=1;i+> sum=sum+1;C. k=0; do +k;

注意事项

本文(C语言练习题1-5及参考答案)为本站会员(仙***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

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




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!