当前位置:文档之家› C语言程序设计实例分析30道(含答案)

C语言程序设计实例分析30道(含答案)

C语言程序设计实例分析30道(含答案)
C语言程序设计实例分析30道(含答案)

C语言程序设计实例分析30道

【题目1】:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

【程序分析】:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

【程序源代码】:

#include

int main()

{

inti,j,k;

printf("\n");

for(i=1;i<5;i++) { // 以下为三重循环

for(j=1;j<5;j++) {

for (k=1;k<5;k++) { // 确保i、j、k三位互不相同

if (i!=k&&i!=j&&j!=k) {

printf("%d,%d,%d\n",i,j,k);

}

}

}

}

}

【题目2】:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;

利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;

20万到40万之间时,高于20万元的部分,可提成5%;

40万到60万之间时高于40万元的部分,可提成3%;

60万到100万之间时,高于60万元的部分,可提成1.5%;

高于100万元时,超过100万元的部分按1%提成。

从键盘输入当月利润I,求应发放奖金总数?

【程序分析】:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

【程序源代码】:

#include

int main()

{

doublei;

double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

printf("你的净利润是:\n");

scanf("%lf",&i);

bonus1=100000*0.1;

bonus2=bonus1+100000*0.075;

bonus4=bonus2+200000*0.05;

bonus6=bonus4+200000*0.03;

bonus10=bonus6+400000*0.015;

if(i<=100000) {

bonus=i*0.1;

} else if(i<=200000) {

bonus=bonus1+(i-100000)*0.075;

} else if(i<=400000) {

bonus=bonus2+(i-200000)*0.05;

} else if(i<=600000) {

bonus=bonus4+(i-400000)*0.03;

} else if(i<=1000000) {

bonus=bonus6+(i-600000)*0.015;

} else if(i>1000000) {

bonus=bonus10+(i-1000000)*0.01;

}

printf("提成为:bonus=%lf",bonus);

printf("\n");

}

【题目3】:一个正整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

【程序分析】:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

【程序源代码】:

#include

#include "math.h"

int main() {

longinti,x,y;

for (i=1;i<100000;i++) {

x=sqrt(i+100); // x为加上100后开方后的结果

y=sqrt(i+268); // y为再加上168后开方后的结果

if(x*x==i+100 && y*y==i+268){ //如果一个数的平方根的平方等于该数,这说明此数是完全平方数

printf("\n%ld\n",i);

}

}

}

【题目4】:输入某年某月某日,判断这一天是这一年的第几天?

【程序分析】:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第

几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

【程序源代码】:

#include

int main()

{

intday,month,year,sum,leap;

printf("\n请输入年、月、日,格式为:年,月,日(2015,12,10)\n");

scanf("%d,%d,%d",&year,&month,&day); // 格式为:2015,12,10

switch(month) // 先计算某月以前月份的总天数

{

case 1:sum=0;break;

case 2:sum=31;break;

case 3:sum=59;break;

case 4:sum=90;break;

case 5:sum=120;break;

case 6:sum=151;break;

case 7:sum=181;break;

case 8:sum=212;break;

case 9:sum=243;break;

case 10:sum=273;break;

case 11:sum=304;break;

case 12:sum=334;break;

default:printf("data error");break;

}

sum=sum+day; // 再加上某天的天数

if(year%400==0||(year%4==0&&year%100!=0)) {// 判断是不是闰年

leap=1;

} else {

leap=0;

}

if(leap==1&&month>2) { // *如果是闰年且月份大于2,总天数应该加一天

sum++;

}

printf("这是这一年的第%d 天。",sum);

printf("\n");

}

【题目5】:输入三个整数x,y,z,请把这三个数由小到大输出。

【程序分析】:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y 的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x 最小。

【程序源代码】:

#include

int main()

{

intx,y,z,t;

printf("\n请输入三个数字:\n");

scanf("%d%d%d",&x,&y,&z);

if (x>y) { /*交换x,y的值*/

t=x;x=y;y=t;

}

if(x>z) { /*交换x,z的值*/

t=z;z=x;x=t;

}

if(y>z) { /*交换z,y的值*/

t=y;y=z;z=t;

}

printf("从小到大排序: %d %d %d\n",x,y,z);

}

【题目6】:输出9*9口诀。

【程序分析】:分行与列考虑,共9行9列,i控制行,j控制列。

【程序源代码】:

#include

int main()

{

inti,j,result;

printf("\n");

for (i=1;i<10;i++)

{

for(j=1;j<10;j++)

{

result=i*j;

printf("%d*%d=%-3d",i,j,result); /*-3d表示左对齐,占3位*/

}

printf("\n"); /*每一行后换行*/

}

}

【题目7】:要求输出国际象棋棋盘。

【程序分析】:国际象棋棋盘由64个黑白相间的格子组成,分为8行*8列。用i控制行,j 来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

【程序源代码】:

#include

int main()

{

inti,j;

for(i=0;i<8;i++)

{

for(j=0;j<8;j++)

if((i+j)%2==0)

printf("%c%c",219,219);

elseprintf(" ");

printf("\n");

}

return 0;

}

【题目8】:打印楼梯,同时在楼梯上方打印两个笑脸。

【程序分析】:用ASCII 1 来输出笑脸;用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。

【程序源代码】:

#include

int main()

{

inti,j;

printf("\1\1\n"); /*输出两个笑脸*/

for(i=1;i<11;i++)

{

for(j=1;j<=i;j++)

printf("%c%c",219,219);

printf("\n");

}

return 0;

}

【题目9】:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)

【程序分析】:兔子的规律为数列1,1,2,3,5,8,13,21....,即下个月是上两个月之和(从第三个月开始)。

【程序源代码】:

#include

int main()

{

int f1=1,f2=1,i;

for(i=1;i<=20;i++)

{

printf("%12d%12d",f1,f2);

if(i%2==0) printf("\n");

f1=f1+f2;

f2=f1+f2;

}

return 0;

}

【题目10】:判断101到200之间的素数。

【程序分析】:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

【程序源代码】:

#include

int main()

{

inti,j;

int count=0;

for (i=101; i<=200; i++)

{

for (j=2; j

{

// 如果j能被i整出在跳出循环

if (i%j==0)

break;

}

// 判断循环是否提前跳出,如果j

if (j>=i)

{

count++;

printf("%d ",i);

// 换行,用count计数,每五个数换行

if (count % 5 == 0)

printf("\n");

}

}

return 0;

}

【题目11】:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

【程序分析】:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

【程序源代码】:

#include

int main()

{

inti,x,y,z;

for(i=100;i<1000;i++)

{

x=i%10;

y=i/10%10;

z=i/100%10;

if(i==(x*x*x+y*y*y+z*z*z))

printf("%d\n",i);

}

return 0;

}

【题目12】:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

【程序分析】:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外打印出即可。

(2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

【程序源代码】:

#include

int main()

{

intn,i;

printf("请输入整数:");

scanf("%d",&n);

printf("%d=",n);

for(i=2;i<=n;i++)

{

while(n%i==0)

{

printf("%d",i);

n/=i;

if(n!=1) printf("*");

}

}

printf("\n");

return 0;

}

【题目13】:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

【程序分析】:(a>b)?a:b这是条件运算符的基本例子。

【程序源代码】:

#include

int main()

{

int score;

char grade;

printf("请输入分数:");

scanf("%d",&score);

grade=(score>=90)?'A':((score>=60)?'B':'C');

printf("%c\n",grade);

return 0;

}

【题目14】:输入两个正整数m和n,求其最大公约数和最小公倍数。

【程序分析】:

(1)最小公倍数=输入的两个数之积除于它们的最大公约数,关键是求出最大公约数;(2)求最大公约数用辗转相除法(又名欧几里德算法)

1)证明:设c是a和b的最大公约数,记为c=gcd(a,b),a>=b,

令r=a mod b

设a=kc,b=jc,则k,j互素,否则c不是最大公约数

据上,r=a-mb=kc-mjc=(k-mj)c

可知r也是c的倍数,且k-mj与j互素,否则与前述k,j互素矛盾,

由此可知,b与r的最大公约数也是c,即gcd(a,b)=gcd(b,a mod b),得证。

2)算法描述:

第一步:a ÷b,令r为所得余数(0≤r 第二步:互换:置a←b,b←r,并返回第一步。【程序源代码】:

#include

int main()

{

inta,b,t,r;

printf("请输入两个数字:\n");

scanf("%d %d",&a,&b);

if(a

{t=b;b=a;a=t;}

r=a%b;

int n=a*b;

while(r!=0)

{

a=b;

b=r;

r=a%b;

}

printf("这两个数的最大公约数是%d,最小公倍数是%d\n",b,n/b);

return 0;

}

【题目15】:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。【程序分析】:利用while语句,条件为输入的字符不为'\n'。

【程序源代码】:

#include

int main()

{

char c;

int letters=0,spaces=0,digits=0,others=0;

printf("请输入一些字母:\n");

while((c=getchar())!='\n')

{

if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))

letters++;

else if(c>='0'&&c<='9')

digits++;

else if(c==' ')

spaces++;

else

others++;

}

printf("字母=%d,数字=%d,空格=%d,其他=%d\n",letters,digits,spaces,others);

return 0;

}

【题目16】:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如

2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

【程序分析】:关键是计算出每一项的值。

【程序源代码】:

#include

int main()

{

int s=0,a,n,t;

printf("请输入a 和n:\n");

scanf("a=%d,n=%d",&a,&n);

t=a;

while(n>0)

{

s+=t;

a=a*10;

t+=a;

n--;

}

printf("a+aa+...=%d\n",s);

return 0;

}

【题目17】:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

【程序分析】:请参照:C 练习实例14。

【程序源代码】:

#include

#define N 1000

int main()

{

inti,j,k,n,sum;

int a[256];

for(i=2;i<=N;i++)

{

sum=a[0]=1;

k=0;

for(j=2;j<=(i/2);j++)

{

if(i%j==0)

{

sum+=j;

a[++k]=j;

}

}

if(i==sum)

{

printf("%d=%d",i,a[0]);

for(n=1;n<=k;n++)

printf("+%d",a[n]);

printf("\n");

}

}

return 0;

}

【题目18】:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

【程序源代码】:

#include

int main()

{

floath,s;

h=s=100;

h=h/2; //第一次反弹高度

for(inti=2;i<=10;i++)

{

s=s+2*h;

h=h/2;

}

printf("第10次落地时,共经过%f米,第10次反弹高%f米\n",s,h);

return 0;

}

【题目19】:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个?第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下?的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。【程序分析】:采取逆向思维的方法,从后往前推断。

1) 设x1为前一天桃子数,设x2为第二天桃子数,则:

x2=x1/2-1, x1=(x2+1)*2

x3=x2/2-1, x2=(x3+1)*2

以此类推:x前=(x后+1)*2

2) 从第10天可以类推到第1天,是一个循环过程。

【程序源代码】:

#include

#include

int main(){

int day, x1 = 0, x2;

day=9;

x2=1;

while(day>0) {

x1=(x2+1)*2; // 第一天的桃子数是第2天桃子数加1后的2倍

x2=x1;

day--;

}

printf("总数为%d\n",x1);

return 0;

}

【题目20】:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

【程序源代码】:

#include

#include

int main()

{

chari,j,k;

for(i='x';i<='z';i++) {

for(j='x';j<='z';j++) {

if(i!=j) {

for(k='x';k<='z';k++) {

if(i!=k&&j!=k) {

if(i!='x'&&k!='x'&&k!='z') {

printf("顺序为:a--%c\tb--%c\tc--%c\n",i,j,k);

}

}

}

}

}

}

【题目21】:打印出如下图案(菱形)。

*

***

*****

*******

*****

***

*

【程序分析】:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。

【程序源代码】:

#include

int main()

{

inti,j,k;

for(i=0;i<=3;i++) {

for(j=0;j<=2-i;j++) {

printf(" ");

}

for(k=0;k<=2*i;k++) {

printf("*");

}

printf("\n");

}

for(i=0;i<=2;i++) {

for(j=0;j<=i;j++) {

printf(" ");

}

for(k=0;k<=4-2*i;k++) {

printf("*");

}

printf("\n");

}

}

【题目22】:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

【程序分析】:请抓住分子与分母的变化规律。

【程序源代码】:

#include

int main()

inti,t;

float sum=0;

float a=2,b=1;

for(i=1;i<=20;i++)

{

sum=sum+a/b;

t=a;

a=a+b;

b=t;

}

printf("%9.6f\n",sum);

}

【题目23】:求1+2!+3!+...+20!的和。

【程序分析】:此程序只是把累加变成了累乘。【程序源代码】:

#include

int main()

{

inti;

long double sum,mix;

sum=0,mix=1;

for(i=1;i<=20;i++)

{

mix=mix*i;

sum=sum+mix;

}

printf("%Lf\n",sum);

}

【题目24】:利用递归方法求5!。

【程序分析】:递归公式:fn=fn_1*4!

【程序源代码】:

#include

int main()

{

inti;

int fact();

for(i=0;i<6;i++){

printf("%d!=%d\n",i,fact(i));

}

}

int fact(int j)

{

int sum;

if(j==0){

sum=1;

} else {

sum=j*fact(j-1);

}

return sum;

}

【题目25】:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。【程序源代码】:

#include

int main()

{

inti=5;

voidpalin(int n);

printf("请输入5个字符\40:\40");

palin(i);

printf("\n");

}

voidpalin(n)

int n;

{

char next;

if(n<=1) {

next=getchar();

printf("相反顺序输出结果\40:\40");

putchar(next);

} else {

next=getchar();

palin(n-1);

putchar(next);

}

}

【题目26】:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

【程序分析】:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。。

【程序源代码】:

#include

int age(n)

int n;

{

int c;

if(n==1) c=10;

else c=age(n-1)+2;

return(c);

}

int main()

{

printf("%d\n",age(5));

}

【题目27】:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

【程序分析】:学会分解出每一位数,如下解释。

【程序源代码】:

#include

int main( )

{

longa,b,c,d,e,x;

printf("请输入5 位数字:");

scanf("%ld",&x);

a=x/10000; /*分解出万位*/

b=x%10000/1000; /*分解出千位*/

c=x%1000/100; /*分解出百位*/

d=x%100/10; /*分解出十位*/

e=x%10; /*分解出个位*/

if (a!=0){

printf("为5 位数,逆序为:%ld %ld %ld %ld %ld\n",e,d,c,b,a);

} else if(b!=0) {

printf("为4 位数,逆序为:%ld %ld %ld %ld\n",e,d,c,b);

} else if(c!=0) {

printf("为3 位数,逆序为:%ld %ld %ld\n",e,d,c);

} else if(d!=0) {

printf("为2 位数,逆序为:%ld %ld\n",e,d);

} else if(e!=0) {

printf("为1 位数,逆序为:%ld\n",e);

}

}

【题目28】:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

【程序分析】:学会分解出每一位数。

【程序源代码】:

#include

int main( )

{

longge,shi,qian,wan,x;

printf("请输入5 位数字:");

scanf("%ld",&x);

wan=x/10000; /*分解出万位*/

qian=x%10000/1000; /*分解出千位*/

shi=x%100/10; /*分解出十位*/

ge=x%10; /*分解出个位*/

if (ge==wan&&shi==qian) { /*个位等于万位并且十位等于千位*/

printf("这是回文数\n");

} else {

printf("这不是回文数\n");

}

}

【题目29】:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

【程序分析】:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。

【程序源代码】:

#include

int main()

{

chari,j;

printf("请输入第一个字母:\n");

scanf("%c",&i);

getchar();//scanf("%c",&j);的问题,第二次是读入的一个换行符,而不是输入的字符,因此需要加一个getchar() 吃掉换行符

switch(i)

{

case 'm':

printf("monday\n");

break;

case 'w':

printf("wednesday\n");

break;

case 'f':

printf("friday\n");

break;

case 't':

printf("请输入下一个字母\n");

scanf("%c",&j);

if (j=='u') {printf("tuesday\n");break;}

if (j=='h') {printf("thursday\n");break;}

case 's':

printf("请输入下一个字母\n");

scanf("%c",&j);

if (j=='a') {printf("saturday\n");break;}

if (j=='u') {printf("sunday\n"); break;}

default :

printf("error\n"); break;

}

return 0;

}

【题目30】:删除一个字符串中的指定字母,如:字符串"aca",删除其中的a 字母。【程序源代码】:

#include

#include

#include

// 删除字符串中指定字母函数

char* deleteCharacters(char * str, char * charSet)

{

int hash [256];

if(NULL == charSet)

returnstr;

for(inti = 0; i< 256; i++)

hash[i] = 0;

for(inti = 0; i

hash[charSet[i]] = 1;

intcurrentIndex = 0;

for(inti = 0; i

{

if(!hash[str[i]])

str[currentIndex++] = str[i];

}

str[currentIndex] = '\0';

returnstr;

}

int main()

{

char s[2] = "a"; // 要删除的字母

char s2[5] = "aca"; // 目标字符串printf("%s\n", deleteCharacters(s2, s)); return 0;

}

C语言程序设计第三版谭浩强课后习题答案完整版

1.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。 课后习题答案完整版 第一章 1.5 请参照本章例题,编写一个C 程序,输出以下信息: ************************** Very Good! ************************** 解:mian() {int a,b,c,max; printf( “请输入三个数a,b,c:\n ” ); scanf( “%d,%d,%”d ,&a,&b,&c); C语言程序设计第三版谭浩强 解: mian() {printf( ”); “************************** printf( “”X “ n” ); printf( “Very Good!” \ n”); printf( “”X “ n” ); printf( “************************** ); max=a; if(max

{char #include c1='a',c2='b',c3= 'c',c4= ' \101 ',c5= ' 116'; printf( “a%cb%c n”,c1,c2,c 3); printf( “ b%c %c” ,c4,c5); } 解: aa 口bb 口口口cc 口口口口口口abc A 口N 3.7 要将"China" 译成密码,译码规律是:用原来字母后面的第 4 个字母代替原来的字母.例如,字母"A" 后面第 4 个字母是"E" . "E"代替"A"。因此,"China"应译为"Glmre" 。请编一程序,用赋初值的方法使cl 、c2、c3、c4、c5 五个变量的值分别为, ' C'、h'、i '、n'、a'经过运算,使cl、c2、c3、c4、c5分别变为'G'、' I '、' m >' r'、’ e',并输出。main() { char c1=' C' ,c2=' h' ,c3= ' i ' ,c4= ' n' ,c 5=' a' ; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(" 密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是GImre 3.9 求下面算术表达式的值。 解: 1 )x+a%3*(int)(x+y)%2/4

《C语言程序设计》第三章 C语言基础 课堂笔记

页眉内容 《C语言程序设计》第三章C语言基础课堂笔记 §3.1 基本字符集、关键字和标识符 一.基本字符集 字符是C的基本元素,C语言允许使用的基本字符集: 1.26个大写字母A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2.26个小写子母a b c d e f g h I j k l m n o p q r s t u v w x y z 3.10个阿拉伯数字0 1 2 3 4 5 6 7 8 9 4.其他字符!" # % & ' ( ) * + , - . / : < = > ? [ \ ] ^ _ { | } ~ 5.空格字符以及制表符合换行符等控制字符 二.关键字(P375,附录II) C中具有固定意义的字符串。 (1) C中的关键字共32个,必须用小写字母 (2) 关键字不可用于变量名、函数名等。 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 三.标识符 标识符用于命名变量、类型、函数和其他各种用户定义的对象,是由字母、下划线和数字三种字符组成。 (1) 第一个字符必须为字母或下划线 (2) C对标识符的长度规定为任意,Turbo C区分32 个字符 (3) C区分大小写 (4) 不允许关键字作为标识符 §3.2 C数据类型

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构 一、单项选择题 1、以下不是C语言的特点的是________。 A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化 2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。 A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行 3、以下不是二进制代码文件是________。 A)标准库文件 B)目标文件C)源程序文件 D)可执行文件 4、下面个选项组中,均属于C语言关键字的一组是________。 A)auto,enum,include B)switch,typedef,continue C)signed,union,scanf D)if,struct,type 5、下面四组字符串中,都可以用作C语言标识符的是________。 A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY 6、以下不属于流程控制语句的是_________。 A)表达式语句 B)选择语句 C)循环语句 D)转移语句 7、下面描述中,不正确的是________。 A)C语言的函数体由一系列语句和注释组成。 B)注释内容不能单独写在一行上。 C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。 D)scanf和printf是标准库函数而不是输入和输出语句。 8、下面描述中,正确的是________。 A)主函数的花括号必须有,而子函数中的花括号是可有可无的。 B)一个C程序行只能写一个语句。 C)主函数是程序启动时的唯一入口。 D)函数体包含了函数说明部分。 二、填空题 1、一个完整的C程序至少要有一个________函数。(主函数) 2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。(编译系统) 3、C语言是以________为基本单位、整个程序由________组成。(函数函数) 4、常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和________函数等几个大类。(输入输出) 5、标准库函数存放在________文件中。(函数库) 6、目标程序文件的扩展名是________。(.obj) 7、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。(库函数) 8、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C语言-第三章编程题

完成以下编程题,将程序源代码粘贴提交。 P.56 2.编写程序,输入圆的半径,计算并输出其周长和面积。常量pi的值取3.14159,周长和面积取小数点后2位数字。 #include #define pi 3.14159 void main() { float r,s,a; printf("请输入圆的半径"); scanf("%f",&r); s=pi*r*r; a=2*pi*r; printf("s=%.2f,a=%.2f\n",s,a); } 3.编写程序,把整数华氏温度f转换为浮点型的摄氏温度c。转换公式为c=5/9(f-32),输出要有文字说明,取2位小数。 #include void main() { int f; float c; printf("请输入华氏温度"); scanf("%d",&f);

c=5.0/9*(f-32); printf("摄氏温度为%.2f\n",c); } 4.编写程序,输入三角形的三边的边长,求三角形面积。三角形面积的计算公式为:p=(a+b+c)/2 ,S=sqrt(p(p-a)(p-b)(p-c))。 #include #include void main() { float a,b,c,S,p; printf("请输入三角形三边长\n"); scanf("%f%f%f",&a,&b,&c); p=(a+b+c)/2.0; S=sqrt(p*(p-a)*(p-b)*(p-c)); printf("S=%f\n",S); } 6.编写程序,输入一个小写字母,输出其对应的大写字母。 #include void main() { char c; printf("请输入一个小写字母\n"); scanf("%c",&c);

二级c语言程序设计习题及解答ch1-3

12)计算机能直接执行的程序是(B )。 A)源程序B)目标程序C)汇编程序D)可执行程序 13)以下叙述中正确的是( D ) A)程序设计的任务就是编写程序代码并上机调试 B)程序设计的任务就是确定所用数据结构 C)程序设计的任务就是确定所用算法 D)以上三种说法都不完整 例年真题: #include main() { Int a; A=5; /*给A变量赋值5 A+=3; 再赋值后再加3*/ Printf(“%d”,a); } (11)以下叙述中正确的是( C )。 A)C 程序的基本组成单位是语句B)C 程序中的每一行只能写一条语句 C)简单C 语句必须以分号结束D)C 语句必须在一行内写完 (11)以下叙述中正确的是( C ) A)C程序中的注释只能出现在程序的开始位置和语句的后面 B)C程序书写格式严格,要求一行内只能写一个语句 C)C程序书写格式自由,一个语句可以写在多行上 D)用C语言编写的程序只能放在一个程序文件中 (12)以下选项中,能用作用户标识符的是( C ) A)void B)8_8 C)_0_ D)unsigned 【解析】A:关键字不可以B:不以数字开头C:正确D:关键字 (13)以下选项中合法的标识符是( C ) A)1-1 B)1—1C)-11D)1— 【解析】A:不以数字开头,出现非法字符-而不是_ B:不以数字开头,非法字符C:正确D: 不以数字开头,出现非法字符 (14)以下选项中不合法的标识符是( C ) A)print B)FOR C)&a D)_00 【解析】C:出现非法字符& (15)以下选项中,能用作数据常量的是( D ) A)o115 B)0118 C)1.5e1.5D)115L

C语言详解(第五版)第二章程序设计项目答案

C语言详解(第五版)程序设计项目答案第二章 1.编写一个程序,以每英里0.35的费率计算一个售货员的里程偿还金。程序中要求与用户进行如下方式的交互。 #include #include int main(void) {float mile_1,mile_2,miles,consume,payment; printf("MILEAGE REIMBURSEMENT CALCULATOR\n"); printf("Enter begainning odometer reading>\n"); scanf("%f",&mile_1); printf("Enter endding odometer reading>\n"); scanf("%f",&mile_2); printf("Enter consume per mile>\n"); scanf("%f",&consume); miles=mile_2-mile_1; payment=miles*consume; printf("You traveled%f miles.At%f per mile,your reimbursement is%f",miles,consume,payment); system("pause"); return(0); } 2.编写一个程序,用于辅助设计水力发电大坝。提示用户输入大坝高度,以及水流量。如果水由重力所做的功有90%转化为电能,测算会有多少M瓦的功率。 #include #include int main(void) {double density,weight,gravitational_acceleration, efficiency,height,water_flow_rate,work,electricity_power; printf("Please type in the density of water>"); scanf("%lf",&density); printf("Please type in the gravitational_acceleration>"); scanf("%lf",&gravitational_acceleration); printf("Please type in the height of the water>"); scanf("%lf",&height); printf("Please type in the efficiency of the transformation\nfrom water to electricity>"); scanf("%lf",&efficiency); printf("Please type in the water_flow_rate>"); scanf("%lf",&water_flow_rate); weight=density*water_flow_rate; work=weight*height*gravitational_acceleration; electricity_power=work*efficiency/1000000; printf("The electric energy production is%fW",electricity_power); system("pause"); return0; }

C语言程序设计教程第三版(李凤霞)习题答案

教材习题答案 第一章 习题 一、单项选择题 1. C 2. B 3. B 4. C 5. D 6. A 7. C 8. A 二、填空题 1. 判断条件 2. 面向过程编程 3. 结构化 4. 程序 5. 面向对象的程序设计语言 6. 基本功能操作、控制结构 7. 有穷性 8. 直到型循环结构 9. 算法 10.可读性 11.模块化 12.对问题的分解和模块的划分

习题 一、单项选择题 1. B 2. D 3. C 4. B 5. A 6. A 7. B 8.C 二、填空题 1. 主 2. C编译系统 3. 函数、函数 4. 输入输出 5. 头 6. .OBJ 7. 库函数 8. 文本 第三章 习题 一、单项选择题 1. D 2. B 3. A

5. C 6. D 7. D 8. B 9. B 10.C 11.A 12.D 13.C 14.C 15.C 16.A 17.C 18.C 19.C 20.D 21.A 22.D 23.D 24.D,A 25.D 26.A 27.B 二、填空题 1. 补码 2. 308 10 - ±

~)308 10 ,15 —6 2. 308 10 - ± (~)308 10 ,15

6 3. 逻辑 4. 单目,自右向左 5. 函数调用 6. a 或 b ( 题目有错 , 小括号后面的 c<=98 改成( c>=97&&c<=98 )就可以得到所给的答案了) 7.

8. 65 , 89 第四章 习题 一、单项选择题 1. D 2. C 3. D 4. A 5. D 6. B 7. A 8. C 9. B 10.B 二、填空题 1. 一

c语言程序设计第三章课后答案

/*习题3 2*/ #include main() { int rate; double salary,tax; printf("enter salary:\n"); scanf("%lf",&salary); if(salary<=850) rate=0; else if(salary>850&&salary<=1350) rate=5; else if(salary>1350&&salary<=2850) rate=10; else if(salary>2850&&salary<=5350) rate=15; else rate=20; tax=rate*(salary-850)/100; printf("tax=%.2lf\n",tax); } /*习题3 4*/ #include main() { int n,i,A=0,B=0,C=0,D=0,E=0; double grade,sum=0,ave; printf("enter n:\n"); scanf("%d",&n); printf("enter n ge grade\n"); for(i=1;i<=n;i++) { scanf("%lf",&grade); sum=sum+grade; if(grade>=90&&grade<=100) A=A+1; else if(grade>=80&&grade<=89) B=B+1; else if(grade>=70&&grade<=79) C=C+1; else if(grade>=60&&grade<=69) D=D+1; else E=E+1;

C语言程序设计学习指导(第2版) 1-6

第一章概述 一、选择 1.C 2.B 3.C 4.D 5.D 6.A 7.B 8.C 9.A 10.B 11.C 12.D 13.B 14.B 第二章数据类型 一、选择 1.D 2.A 3.C 4.D 5.A 6.B 7.A 8.B 9.A 10.D 11.B 12.C 13.C 14.D 15.C 16.B 17.D 18.A 19.C 20.B 21.B 22.D 23.A 24.B 25.B 26.B 27.C 第三章运算符和表达式 一、选择 1.A 2.D 3.D 4.D 5.D 6.A 7.C 8.C 9.B 10.B 11.C 12.C 13.A 14.A 15.A 16.A 17.B 18.C 19.C 20.D 21.A 22.A 23.C 24.C 25.A 26.B 27.D 28.A 29.B 30.C 31.D 32.D 33.D 34.B 35.A 36.A 37.B 38.C 39.D 40.B 41.B 42.C 43.B 第四章输入和输出 一、选择 1.C 2.D 3.C 4.C 5.C 6.B 7.B 8.C 9.D 10.D 11.D 12.D 13.B 14.A 15.B 16.B 二、编程 1.double fun(double m) { float n; n=(5.0/9.0)*(m-32); return n; } 2. char fun(char c) {c=c+32; return c;} 3.double fun(int m) { double y=0; y=sin(m)*10; return(y); } 4.float fun ( float h ) {return (long)( h * 100 + 0.5 )/ 100.0;}

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

c语言详解(第五版)第三章程序设计项目答案

c语言详解(第五版)第三章程序设计项目答案 1.假设买一辆车首付为500dollar。请计算月供。 #include #include #include int main(void) {double capital_sum,monthly_interest_rate,initial_payment,temp,payment,terms; printf("Please enter the price of the car>>"); scanf("%lf",&capital_sum); printf("Please enter the monthly interest rate>>"); scanf("%lf",&monthly_interest_rate); printf("Please enter the terms duration of loan>>"); scanf("%lf",&terms); printf("Please enter the initial_payment>>"); scanf("%lf",&initial_payment); temp=1+monthly_interest_rate; payment=(capital_sum-500)*monthly_interest_rate/(1-pow(temp,-terms)); printf("The monthly contribution is %.2f dollars.",payment); printf("The capital sum is %.2f dollars.",capital_sum); system("pause"); return 0; } 2.编写两个函数,一个显示三角形,另一个显示矩形。 #include #include #include void draw_triangle(void); void draw_rectangle(void); int main(void) {draw_triangle(); draw_rectangle(); system("pause"); return 0; } /*Draw an triangle.*/ void draw_triangle(void) { printf(" /\\ \n"); printf(" / \\ \n"); printf(" / \\ \n"); printf(" / \\ \n"); printf(" -------- \n"); } void draw_rectangle(void)

C语言程序设计(第3版)第3章习题参考答案

习题三参考答案 (1)从键盘输入一个年份值,判断是否闰年。设iYear为某一年份,iYear为闰年的条件为:iYear可以被4整除且不可以被100整除,或者iYear可以被400整除。 #include "Stdio.h" #include "Conio.h" int main(void) { int iYear; printf("please input the year:"); scanf("%d",&iYear); if(iYear%400==0||(iYear%4==0&&iYear%100!=0)) printf("%d is leap",iYear); else printf("%d is not leap",iYear); getch(); return 0; } (2)从键盘输入三个整数,按由小到大的顺序输出。 #include "stdio.h" main() {int i,j,k,max; scanf("%d%d%d",&i,&j,&k); max=i>j?i:j; max=max>k?max:k; printf("max=%d",max); getch(); } (3)假设星期一至星期五每工作一小时的工资是20元,星期六和星期日每工作一小时的工资是平时的3倍,其中工资的4.5%是税金。试编一程序从键盘输入星期序号(1,2,3,4,5,6,7,分别表示星期一至星期天)和工作小时数,计算该日的工资及应交税金。 #include "Stdio.h" #include "Conio.h" int main(void) { int iWeek,iHours ; float fSalary,fTaxes;

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

c语言程序设计(第3版)的习题答案

1.5请参照本章例题,编写一个C程序,输出以下信息: ************ Very Goodj! ************ 解: main() { printf(" ************ \n"); printf("\n"); printf(" Very Good! \n"); printf("\n"); printf(" ************\n"); } 1.6编写一个程序,输入a b c三个值,输出其中最大者。 解:main() {int a,b,c,max; printf("请输入三个数a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案 习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 1-3 编程题 1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include "stdio.h" main() { float a, b, h, s; a=10; b=20; h=5; s=(a+b)*h/2; printf("s=%f\n" , s ); } 2. 编写程序显示如图1.11所示信息。 图1.11 显示信息 #include "stdio.h" main()

{ printf("******************************\n"); printf("* hello world *\n"); printf("******************************\n"); } 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题 1.2.000000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 习题3 3-1 选择题 1-5BDABC 6-10ADCAC 11-12BB 3-2 填空题 1. 3 2.0261 3.0x10 4. 2, 1 互换a,b的值 5. 6.6 6.–003 8.7 7. 5.0,4,c=3 8.i=10,j=20 9.(1) 65 (2) 65,A (3) 56.123400,123.456001 (4) 3.141600 (5) 8765.432

c语言程序设计复习题

C语言程序设计复习题 第一章C语言概述 一、选择题: 1、一个C程序的执行是从(A)。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 2、在C语言中,每个语句必须以(D)结束。 A.回车符 B.冒号 C.逗号 D.分号 3、C语言规定:在一个源程序中,main函数的位置(C)。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 4、一个C语言程序是由(B)。 A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成 5、下列说法中错误的是(D)。 A.主函数可以分为两个部分:主函数说明部分和主函数体 B.主函数可以调用任何非主函数的其他函数 C.任何非主函数可以调用其他任何非主函数 D.程序可以从任何非主函数开始执行 6、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(C)。 A.生成可执行目标文件 B.生成目标文件 C.输出运行结果 D.自动保存源文件 二、填空题: 1、C语言只有(32)个关键字和(9)种控制语句。 2、每个源程序有且只有一个(main)函数,系统总是从该函数开始执行C语言程序。 3、C语言程序的注释可以出现在程序中的任何地方,它总是以(\*)符号作为开始标记,以(*/)符号作为结束标记。 4、C语言中,输入操作是由库函数(scanf)完成的,输出操作是由库函数(printf)完成的。 5、系统默认的C语言源程序文件的扩展名是(.c),经过编译后生成的目标文件的扩展名是(.obj),经过连接后生成的可执行文件的扩展名是(.exe)。 6、C语言的标识符只能由(字母、数字和下划线)三种字符组成。 第三章数据类型、运算符和表达式 一、选择题: 1、以下选项中,不正确的C语言浮点型常量是(C)。 A.160. B.0.12 C.2e4.2 D.0.0 2、以下选项中,(D)是不正确的C语言字符型常量。 A.'a' B.'\x41' C.'\101' D."a"

C语言程序设计的试题及答案

C语言程序设计的试题及答案 C语言程序设计的试题及答案C语言程序设计的试题及答案第一章基础知识 一、填空 1.每个C程序都必须有且仅有一个________函数。 2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3.软件是程序,以及______、使用和维护所需要的所有文档。 4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6.C语言是由________组成的。 7.C语言的函数可分为主函数ain、标准库函数和_________。 8.一个函数是由两部分组成的,即:________和函数体。 9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自

动化、管理信息系统、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14.C程序的执行均是由执行_________开始。15.函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C语句组成的执行部分。 16.C语言程序中一条简单语句是以________字符作为结束符的。 17.C语言是结构化、________的程序设计语言。 18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。

相关主题
文本预览
相关文档 最新文档