程序设计基础(人民邮电出版社)答案第3章 最简单的C程序设计
- 格式:doc
- 大小:57.00 KB
- 文档页数:4
一、选择题1. C 语言中,执行下列语句时,要使 x,y 的值均为1.25,正确的输入是 _C scanf(“x=%f,y=%”f,&x,&y);A. 1.25,1.25 C. x=1.25,y=1.252. 已知i,j,k 为int 型变量,若从键盘输入1, 2, 3/,使i 的值为1,j 的值为2, k 的值为 3,则以下选项中正确的输入语句是 A.scanf(“%2d%2d%2d ”,&i,&j,&k) ; C. scanf(“%d,%d,%d ”,&i,&j,&k) ;D. scanf(“i=%d,j=%d,k=%d ”,&i,&j,&k) ;3.以下程序段的执行结果是 int a=1234 ;printf(“%2d\n ”,a); A. 12 C. 12344. 如果x 为float 类型变量,则以下语句输出为 x=213.82631;printf(“%4.2f\n ”,x); A. 213.82 C. 213.826315. 执行下列程序时输入: 123 456 789/,输出结果是 ___D #include<stdio.h> void main(){char s[10]; int c,i;scanf(“%c ”,&c); scanf(“%d ”,&i); scanf(“%s ”,s);printf( “%c,%d,%s\n ”,c,i,s);}A. 123,456,789 C. 1,23,456,789二、填空题1.在 printf() 函数中以小数形式输出单精度、 双精度实数,应采用格式符 __%f___。
2•在seanf()函数中要输入一个字符串,应采用格式符 __%s3. 有以下程序,输入123456789/,其输出结果是 _12,56,789.00000Q_。
第二章1. (1)1 (2)10 20 0 (3)0 90 80 70 60 50 40 30 20 1 (4)4 55 99 (5)1 (6)67 G2. (1)C (2)B (3)A (4)C (5)B (6)C第三章(1) 没有输出结果,无限循环(2) 8 5 2(3) x<0 x<amin3.2(1) D(2) D(3) C(4) B3.3(1)#include <stdio.h>main(void){int i=1;while(i<101){printf((i%5)?(""):("%d\n"),i);i++;}}(2)#include <stdio.h>main(void){int i,j;for(i=0;i<7;i++){if (i<4){for(j=3-i;j>0;j--)printf(" ");for(j=0;j<(2*i+1);j++)printf(" *");}else{for(j=i-3;j>0;j--)printf(" ");for(j=13-2*i;j>0;j--)printf(" *");}printf("\n");}}或者#include <stdio.h>main(void){int i,j;for(i=0;i<4;i++){for(j=3-i;j>0;j--)printf(" ");for(j=0;j<(2*i+1);j++)printf(" *");printf("\n");}for(i=3;i>0;i--){for(j=0;j<(3-i)+1;j++)printf(" ");for(j=0;j<(2*i-1);j++)printf(" *");printf("\n");}}(3)#include<stdio.h>main(void){int i,j,k;for(i=1;i<9;i++)for(j=0;j<9;j++)for(k=0;k<9;k++)if((i*i*i+j*j*j+k*k*k)==(i*100+j*10+k))printf("%d%d%d\t",i,j,k);}或者main(void){int i,j,k,n;printf("'water flower'number is:");for(n=100;n<1000;n++){i=n/100;/*分解出百位*/j=n/10%10;/*分解出十位*/k=n%10;/*分解出个位*/if(i*100+j*10+k==i*i*i+j*j*j+k*k*k){printf("%-5d",n);}}printf("\n");}(4)#include "stdio.h"int main (){int i_rows; /* 打印字符的行数*/char c_str; /*每次打印的字符*/for(i_rows=0;i_rows<7;i_rows++){for(c_str='G'-i_rows;c_str>('G'-7);c_str--)printf("%c",c_str);printf("\n");}}(5)1.程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。
b) 一个C程序中至少应包括一个 main函数。
c) 在C语言中,输出操作是有库函数 printf( )函数完成。
二、单选题1、A2、C3、B解析:第1题答案:A 。
因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。
且到main函数结束。
第2题答案:C 。
因为 main函数没有限制必须位于程序的最前面。
C程序书写自由,一行内可写几个语句。
在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。
不过C语言本身并没有输入输出语句,输入输出是由函数完成的。
第3题答案:B。
因为一个C语言程序是由若干个函数组成的。
但至少包含一个main 函数,且main函数的位置不限。
三、编程题1、编写一个输出“Welcome to C!”信息的小程序。
解:程序如下#include “stdio.h”main( ){1printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。
海伦公式为:S?= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。
*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。
*/printf(“area=%f\n”,s1);}2第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D解析:1. 答案:C。
C ++程序基础(第3版)答案习题1及其解答1.1选择题1.一个最简单的C++程序,可以只有一个( c )。
(a) 库函数(b) 自定义函数(c) main函数(d) 空函数2.用C++语言编制的源程序要变为目标程序必须要经过( d )。
(a) 解释(b) 汇编(c) 编辑(d) 编译3. C++程序中的简单语句必须以( b )结束。
(a) 冒号(b) 分号(c) 空格(d)花括号4.有说明 int a=0; double x=5.16; 以下语句中,( c )属于编译错误。
(a) x=a/x; (b) x=x/a; (c) a=a%x; (d) x=x*a;5. 执行C++程序时出现的“溢出”错误属于( c )错误。
(a) 编译(b) 连接(c) 运行(d) 逻辑6.下列选项中,全部都是C++关键字的选项为( c )。
(a) while IF Static (b) break char go(c) sizeof case extern (d) switch float integer7. 按C++标识符的语法规定,合法的标识符是( a )。
(a) _abc (b) new (c) π(d) “age“8.C++语句中,两个标识符之间( a )不能..作为C++的分隔符。
(a) 数字(b) ; (c) : (d) +9.下列正确的八进制整型常量表示是( b )。
(a) 0a0 (b) 015 (c) 080 (d) 0x1010.下列错误的十六进制整型常量表示是( c )。
(a) 0x11 (b) 0xaf (c) 0xg (d) 0x1f11.在下列选项中,全部都合法的浮点型数据的选项为( b )。
(a) -1e3.5 15. 2e-4 (b) 12.34 -1e+5 0.1E-12(c) 0.2e-2 -12345. e-5 (d) 5.0e(1+4) 0.1 8e+212.下列正确的字符常量为( d )。
C++程序设计基础课后答案第三章3.1 阅读下列程序,写出执行结果1. #include#includeint f( int ) ;void main(){ int i;for( i = 0; i < 3; i ++ )cout << f( i ) << endl;}int f( int a ){ int b = 0 , c = 1;b ++; c++;return ( a + pow( b, 2 ) + c );}2. void func(int a, int b, int c = 3, int d = 4 ); #includevoid main(){ func( 10, 15, 20, 30 );func( 10, 11, 12 );func( 12, 12 );}void func( int a, int b, int c, int d ){ cout << a << '\t' << b << '\t' << c << '\t' << d << endl; }3.#includevoid func( int, int, int * ) ;void main(){ int x, y, z;func( 5, 6, &x );func( 7, x, &y );func( x, y, &z );cout << x << " ," << y << ", "<< z << endl;}void func( int a , int b , int *c ){ b += a ; *c = b – a ; }4.#includevoid func( int, int, int & );void main(){ int x=0 , y=1 , z=2;func( 1 , 2 , x );func( x + y , y , y );func( z , x + y , z );cout << x << " ," << y << ", "<< z << endl ;}void func( int a , int b , int &c ) { b += a ; c = b – a ; }5. #includeint f2( int, int );int f1( int a , int b ){ int c ;a += a ;b += b ;c = f2( a+b , b+1 );return c;}int f2( int a , int b ){ int c ;c = b % 2 ;return a + c;}void main(){ int a = 3 , b = 4;cout << f1( a , b ) << endl;}6. #includeint age( int n ){ int f;if( n == 1 ) f = 10 ;else f = age( n-1 ) + 2;return f ;}void main(){ cout << "age : " << age( 5 ) << endl; }7. #includeint f1( int a , int b ) { return a + b ; }int f2( int a , int b ) { return a - b ; }int f3( int( *t )( int , int ) , int a , int b ) { return ( *t )( a, b ) ; } void main(){ int ( *p )( int, int );p = f1 ;cout << f3( p, 4, 8 ) << endl;p = f2 ;cout << f3( p, 8, 4 ) << endl;}8.#includeint sub( int, int );int a = 1 ;void main(){ int m = 1, n = 2, f;f = sub( m, n );cout << a << '\t' << f << endl;f = sub( m, n ) ;cout << a << '\t' << f << endl;}int sub( int c, int d ){ static int m = 2, n = 5 ;cout << m << '\t' << n << '\t' << endl;a = ++ a ; c = m ++ ; d = n ++;return c + d ;}3.2 思考题1.函数的作用是什么?如何定义函数?什么叫函数原型?2.什么叫函数值的返回类型?什么叫函数的类型?如何通过指向函数的指针调用一个已经定义的函数?请写一个验证程序说明。
c语⾔第四版答案第三章,《C语⾔程序设计》课后习题答案(第三章)3.3 请写出下⾯程序的输出结果.结果:575 767.856400,-789.12396267.856400,-789.12396267.86,-789.12,67.856400,-789.123962,67.856400,-789.1239626.785640e+001,-7.89e+002A,65,101,411234567,4553207,d68765535,17777,ffff,-1COMPUTER, COM3.4 ⽤下⾯的scanf函数输⼊数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a',问在键盘上如何输⼊?main(){inta,b;floatx,y;charc1,c2;scanf("a=%d b=%d,&a,&b);scanf("x=%f y=%e",&x,&y);scanf("c1=%c c2=%c",&c1,&c2);}解:可按如下⽅式在键盘上输⼊:a=3 b=7x=8.5 y=71.82c1=A c2=a(说明:在边疆使⽤⼀个或多个scnaf函数时,第⼀个输⼊⾏末尾输⼊的"回车"被第⼆个scanf函数吸收,因此在第⼆\三个scanf函数的双引号后设⼀个空格以抵消上⾏⼊的"回车".如果没有这个空格,按上⾯输⼊数据会出错,读者⽬前对此只留有⼀初步概念即可,以后再进⼀步深⼊理解.)3.5 ⽤下⾯的scanf函数输⼊数据使a=10,b=20,c1='A',c2='a',x=1.5,y=-3.75,z=57.8,请问在键盘上如何输⼊数据?scanf("%5d%5d%c%c%f%f%*f%f",&a,&b,&c1,&c2,&y,&z);解:main(){inta,b;floatx,y,z;charc1,c2;scanf("%5d%5d%c%c%f%f",&a,&b,&c1,&c2,&x,&y,&z);}运⾏时输⼊:10 20Aa1.5 -3.75+1.5,67.8(注解:按%5d格式的要求输⼊a与b时,要先键⼊三个空格,⽽后再打⼊10与20。
习题解答第一章:一、选择题1.C2.B3.B4.C5.D6.A7.C8.A二、填空题1.逻辑条件 2.面向过程编程3.结构化4.程序5.面向对象的语言6.基本功能操作,控制结构7.有穷性 8.直到型循环结构9.算法 10.质量11.模块化 12.对问题的分解和模块的划分三、应用题5.第二章:一、选择题1.B2.D3.C4.B5.A6.A7.B8.C二、填空题1.主 2.C编译系统3.函数、函数4.输入/输出5.库6. .obj7.库函数 8.文本第三章:一、单项选择题1.D2.B3.A4.C5.C(完整的答案应该是由机器的字长和编译系统两者决定)6.D7.B8.D9.B 10.C11.A 12.D 13.C 14.C 15.C16.C 17.B 18.C 19.C(注意此题在VC或我们的上机环境中应该选择D,选择C是为了和书上的内容保持一致) 20.D21.A 22.D 23.D 24.D A 25.D26.A 27.B二、填空1.补码2. 10-308~10308 15~16位3.整数值0或14.非从右向左5.函数调用6.题目错误7.18.65,89三、应用题1.10 92.111213.区别是:求负:单目,右结合减法:双目,左结合取址:单目,右结合按位与:双目,左结合。
《C#程序设计基础入门教程》习题答案第1章C#开发入门一、填空题1、.dll、.exe2、CLR3、编译、运行4、互操作性5、Console.WriteLine()二、选择题1、C2、B3、C4、A5、D三、问答题1、它是一个全新的、集成的、面向对象的开发平台,它以公共语言运行时(Common Language Runtime,简写CLR)为基础,支持多种编程语言。
2、.NET平台是一个环境,而C#只是一门语言,并不是它的一部分。
C#语言编写的程序可以在.NET平台上运行。
四、编程题1、参考答案class Program{staticvoid Main(string[] args){Console.WriteLine("这是我的第一个C#程序!");Console.ReadKey();}}第2章C#编程基础(上)一、填空题1、class2、true和false3、54、值数据类型、引用数据类型5、1、46、& && | ||7、08、单行注释、多行注释、文档注释9、break10、1000二、判断题1、错2、错3、错4、对5、错三、选择题1、AD2、BCD3、C4、C5、C 6 、A7、AC8、AC9、BD10、A四、程序分析题1、编译不通过。
int值4和b相加时,由于变量b的类型为byte,取值范围没有int类型大,存不下int类型的值,因此编译不通过。
2、编译不通过。
这是因为y是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用y = x;语句时已经超过了y变量的作用域,所以编译无法通过。
3、编译不通过。
因为switch语句中的每个分支语句之间需要使用break关键字隔开,如果没有break语句就会报错。
4、打印结果为:987五、问答题1、标识符可以由任意顺序的大小写字母、数字、下划线(_)和@符号组成,但标识符不能以数字开头,且不能是C#中的关键字。
一、选择题
1.C语言中,执行下列语句时,要使x,y的值均为1.25,正确的输入是___C__。
scanf(“x=%f,y=%f”,&x,&y);
A. 1.25,1.25
B. 1.25 1.25
C. x=1.25,y=1.25
D. x=1.25 y=1.25c
2.已知i,j,k为int型变量,若从键盘输入1,2,3↙,使i的值为1,j的值为2,k的值为3,则以下选项中正确的输入语句是___C_。
A.scanf(“%2d%2d%2d”,&i,&j,&k) ;
B. scanf(“%d%d%d”,&i,&j,&k) ;
C. scanf(“%d,%d,%d”,&i,&j,&k) ;
D. scanf(“i=%d,j=%d,k=%d”,&i,&j,&k) ;
3. 以下程序段的执行结果是_C____。
int a=1234 ;
printf(“%2d\n”,a);
A. 12
B. 34
C. 1234
D.提示出错,无结果
4.如果x为float类型变量,则以下语句输出为____D _。
x=213.82631;
printf(“%4.2f\n”,x);
A. 213.82
B.宽度不够,不能输出
C. 213.82631
D.213.83
5.执行下列程序时输入:123 456 789↙,输出结果是___D__。
#include<stdio.h>
void main()
{
char s[10];
int c,i;
scanf(“%c”,&c);
scanf(“%d”,&i);
scanf(“%s”,s);
printf(“%c,%d,%s\n”,c,i,s);
}
A. 123,456,789
B. 1,456,789
C. 1,23,456,789
D.1,23,456
二、填空题
1.在printf()函数中以小数形式输出单精度、双精度实数,应采用格式符__%f___。
2.在scanf()函数中要输入一个字符串,应采用格式符__%s__。
3.有以下程序,输入123456789↙,其输出结果是___12,56,789.000000__。
#include<stdio.h>
void main()
{
int a,b;
float f;
scanf(“%2d%*2d%2d%f”,&a,&b,&f);
printf(“%d,%d,%f\n”,a,b,f);
}
4.以下语句输出结果是_6e,16____。
int a=110,b=017;
printf(“%x,%d\n”,a++,++b);
5.以下程序输出结果是__1,1,3___。
void main()
{
int i=3,j=2,a,b,c;
a=(--i==j++)?--i:++j;
b=i++;
c=j;
printf(“%d,%d,%d\n”,a,b,c);
}
三、编程题
1.编写一个程序,从键盘上输入3个数,求其和并输出。
#include <stdio.h>
void main()
{
int a,b,c,d;
printf("please input the num of a,b,c:");
scanf("%d%d%d",&a,&b,&c);
d=a+b+c;
printf("the sum of a,b and c is %d",d);
}
2.输入一个正整数,分别输出它的八进制和十六进制数形式。
#include <stdio.h>
void main()
{
int m;
printf("please input the m:");
scanf("%d",&m);
printf("\n ba jin zhi shu zhi shi : %o",m);
printf("\n shi liu jin zhi shu zhi shi : %x",m);
}
3.编程把11325秒转换成“小时:分钟:秒”的形式
#include <stdio.h>
void main()
{
int a=11325;
int h,m,s;
h=a/3600;
m=a%3600/60;
s=a%3600%60;
printf("%d:%d:%d",h,m,s);
}
4.编程序,求a+︱b︱的值,a,b为任意数。
本题可调用求绝对值的函数fabs,此函数包含在math.h文件中。
#include <math.h>
#include <stdio.h>
void main()
{
double a,b;
printf("please input the num of a and b:");
scanf("%lf%lf",&a,&b);
printf("\n a+|b|= %lf",a+fabs(b));
}
5.编程序,求平面上两点之间的距离。
设第1个点的坐标为(x1,y1),第2点
的坐标为(x2,y2),则这两个点的距离为:
#include <stdio.h>
#include <math.h>
void main()
{
float x1,y1,x2,y2,d;
printf("\n shu ru di 1 ge dian de zuo biao : ");
scanf("%f%f",&x1,&y1);
printf("\n shu ru di 2 ge dian de zuo biao : ");
scanf("%f%f",&x2,&y2);
d=sqrt(pow((x1-x2),2)+pow((y1-y2),2));
printf("\n ju li d wei : %f ",d); }。