文档库 最新最全的文档下载
当前位置:文档库 › C语言课后答案

C语言课后答案

C语言课后答案
C语言课后答案

第3章

三、编程题

1. 编写程序,输入一个非负数,输出以此数为半径的圆周长以及面积。

#include "stdio.h"

#define PI 3.1415

void main()

{

float r,area,circumference;

scanf("%f",&r);

area=PI*r*r;

circumference=2*r*PI;

printf("area=%6.2f\ncircumference=%6.2f\n",area,circumference);

}

2. 编写程序,输出下面结果,注意,双引号也要输出:

“I'm a student!”

#include

void main()

{

printf("\"I\'m a student!\"\n"); }

3. 编写程序,输入一个小写字母,将其转换为大写字母输出。例如输入b ,则输出B 。提示:小写字母和

对应的大写字母的ASCII 码值相差32。 void main()

{

char ch;

ch=getchar();

ch-=32;

putchar(ch);

//printf("%c",ch);

} 4. 编写程序,输入一个华氏温度f ,输出其相应的摄氏温度c 。华氏温度和摄氏温度的转换公式为:

)32f (95c -=

#include

void main()

{

float f,c;

scanf(“%f ”,&f);

c=5.0*(f-32)/9;

printf(“华氏温度%5.2f 转换为摄氏温度为:%5.2f\n ”,f,c);

第4章

三、编程题

1.输入一个整数,判断这个整数是奇数还是偶数(提示:整数的奇偶性可以利用取余运算符%判定)。#include

void main()

{

int a;

scanf("%d",&a);

if(a%2)

printf("奇数\n");

else

printf("偶数\n");

}

2.编写程序,输入一个24小时制的时间,转换为12小时制时间后进行输出。以13点15分为例,输入:13:15,则输出:下午1:15。

#include

void main()

{

int hour,minute;

scanf("%d:%d",&hour,&minute);

if (hour>12) hour=hour-12;

printf("%d:%d\n",hour,minute);

}

3.输入年号,判断它是否是闰年(如果年号能被400整除,或能被4整除,而不能被100整除,则是闰年,否则不是)。

void main()

{

int year;

scanf("%d",&year);

if (year%400==0||(year%4==0&&year%100==0))

printf("%d是闰年\n",year);

else

printf("%d不是闰年\n",year);

}

4.输入一个字符,如果是大写字母则输出对应的小写字母,如果是小写字母则输出相应的大写字母,如果都不是则原样输出。

#include

void main()

{

char ch;

scanf("%c",&ch);

if(ch>='a'&&ch<='z')

ch-=32;

else

if(ch>='A'&&ch<='Z')

ch+=32;

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

}

5.设计一个简单的计算器程序,能输入整型运算数和基本运算符(+,-,*,/),输出计算结果。例如:输入2+6,输出2+6=8。

#include

main()

{

float a,b,result;

char op;

scanf("%f%c%f",&a,&op,&b);

switch(op)

{

case'+': result=a+b; printf("=%f",result); break;

case'-': result=a-b; printf("=%f",result); break;

case'*': result=a*b; printf("%f",result); break;

case'/': if(b==0.0) printf("error!\n");

result=a/b;

printf("=%f",result);

default: printf("error due to the illegal input!\n");

}

}

第5章

三、编程题

1.编写程序,显示100~200之间能被7除余2的所有整数。

#include "stdio.h"

main()

{ int i;

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

{ if(i%7==2)

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

}

}

2.输入n个整数,求这n个整数中的最大数、最小数和偶数平均数,并输出。

#include

void main()

{

int i,n,data,max=0,min=0,even=0,evennumber=0;

printf("Please input the number of data:");

scanf("%d",&n);

printf("Please input the data:\n");

scanf("%d",&data);

max=data;

min=data;

if (data%2==0)

{

even=even+data;

evennumber++;

}

for(i=1;i

{

scanf("%d",&data);

if (data>max)

max=data;

else

if (data

min=data;

if (data%2==0)

{

even=even+data;

evennumber++;

}

}

printf("The max is %d\nThe min is %d\n The average of even is %5.2f\n",max,min,(float)(even)/evennumber);

}

3.输入一串字符,以回车作为结束标志。统计并输出这串字符中大写字母、小写字母和数字字符的个数。

#include

void main()

{

int upper=0,lower=0,number=0;

char letter;

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

{

if (letter>='a'&&letter<='z') lower++;

else if (letter>='A'&&letter<='Z') upper++;

else if (letter>='0'&&letter<='9') number++;

}

printf("the number of uppercase is:%d\n",upper);

printf("the number of lowercase is:%d\n",lower);

printf("the number of number is:%d\n",number);

}

4.输出九九乘法表。

#include

void main()

{

int i,j;

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

{

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

printf("%d*%d=%-3d ",i,j,i*j);

printf("\n");

}

}

5.编写程序,输出3~1000之间全部素数。

#include

#include "math.h"

void main()

{

int k,data,tag;

for(data=3;data<=1000;data++) //外层循环,用来产生2~1000之间的整数

{

tag=0; //tag用于表示数i是否是素数,没有判断前先假定是素数

for(k=2;k<=sqrt(data)&&!tag;k++) //内层循环用来判断data是否有约数

{

if (data%k==0)

tag=1;

}

if (tag==1) printf("%4d",data); //如果i是素数,则输出

}

}

6.输入一个三位数,判断其是否是“水仙花数”。水仙花数是指3位数中的各位数字的立方和等于这3位数本身。如153=1*1*1+5*5*5+3*3*3。

#include"stdio.h"

void main()

{

int S, a, b, c;

printf("请输入一个3位数:");

scanf("%d",&S);

a=S/100; b=S%100/10; c=S%10;

if(a*a*a+b*b*b+c*c*c==S)

printf("%d是水仙花数。",S); else

printf("%d不是水仙花数。\n",S); }

7.编程求Fibonacci数列的前40个数。该数列的生成方法是:F

1=1,F

2

=1,F

n

=F

n-1

+F

n-2

(n>=3)(即从第三个

数起,每个数等于前2个数之和)。

#include "stdio.h"

void main()

{

int f[40],n;

f[0]=1;

f[1]=1;

printf("Fibonacci数列的前40个数是:%d\t%d\t",f[0],f[1]);

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

{

f[n]=f[n-1]+f[n-2];

printf("%d\t",f[n]);

}

}

8.一个穷人找到一个百万富翁,给他商讨一个换钱计划如下:我每天给你十万元,而你第一天只需给我一元钱,第二天给我二元钱,第三天给我四元钱,……,即我每天都给你十万元,你每天给我的钱都是前一天的两倍,直到满一个月(30天)。百万富翁很高兴地接受了这个换钱计划。请编写程序计算满一个月时,穷人给了富翁多少钱,而富翁又给了穷人多少钱。

#include

void main()

{

long poor=100000,rich=1,i;

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

{

poor=poor+100000;

rich=rich*2;

}

printf("Money of poor giving rich is %ld\nMoney of rich giving poor is %ld\n",poor,rich); }

9.猴子吃桃问题。猴子第一天摘下若干桃子,立即吃了一半,不过瘾又多吃了一个。第二天早上又将剩下的桃子吃了一半,又多吃了一个。以后的每天早上都是吃了前一天剩下的一半加一个。到第10天早上时只剩下一个桃子了。编写程序,求猴子第一天共摘了多少桃子。

/************************************************************************/

/*有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个*/

/* 到了第10天就只余下一个桃子。(C语言实现) */

/*用多种方法实现求出原来这群猴子共摘了多少个桃子。 */

/************************************************************************/

/*运行环境:VC++6.0 */

/************************************************************************/

#include "stdio.h"

main()

{

int i,j,k; /*j是最后的桃子数,k是中间变量,也是桃子总数*/

j = 1;

for(i=9;i>0;i--)

{

k = (j + 1) * 2;

j = k;

}

printf("%total=%d\n",k);

}

第6章

三.1. #include

#define n 10

void main()

{ int a[n],i,count1=0,count2=0,sum=0;float ave;

for (i=0;i

{scanf("%d",&a[i]);

sum+=a[i];

if (a[i]>80)

count1+=1;

else

if(a[i]<60)

count2+=1;

}

ave=sum/n;

printf("%d个优秀, %d个不及格,平均分:%f。",count1,count2,ave);

}

2. #include

#define n 10

void main()

{ int a[n],i,j,k,max,min;

for (i=0;i

{scanf("%d",&a[i]);

if (!i)

{max=min=a[i];

j=k=i;

}

else

{if (max

{max=a[i];

j=i;

}

else

if (min>a[i])

{min=a[i];

k=i;

}

}

}

printf("最大值%d在第%d位,最小值%d在第%d位。",max,j+1,min,k+1); }

3. #include

#include

void main()

{ char s[20],ch;

int i,n;

printf("请输入字符串:");

gets(s);

n=strlen(s);

for(i=0;i

{ch=s[i];

s[i]=s[n-1-i];

s[n-1-i]=ch;

}

printf("逆序存放的字符串:");

puts(s);

}

4. #include

#define N 10

void main()

{ int i,j,n,a[N+1];

printf("请输入%d个由小到大排列的整数:",N);

for(i=0;i

scanf("%d",&a[i]);

printf("请输入要插入的数:");

scanf("%d",&n);

for(i=0;i

if(a[i]>n)

{j=i;

break;

}

if (i==N)

j=i;

for(i=N-1;i>=j;i--)

a[i+1]=a[i];

a[j]=n;

printf("插入后的排列:");

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

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

}

5. #include

#define N 3

void main()

{ int i,j,a[N][N],sum=0;

printf("请输入%d*%d矩阵的元素:",N,N);

for(i=0;i

for(j=0;j

{scanf("%d",&a[i][j]);

if(i==j)

sum+=a[i][j];

}

printf("主对角线元素之和:%d。",sum); }

6. #include

#include

void main()

{ int i,j, n,k=0, b[300];

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

{n=int(sqrt(i));

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

{if(i%j==0)

break;

}

if (j>n)

{b[k]=i;

k++;

}

}

for(i=0;i

printf("%5d",b[i]);

}

7. #include

#define N 7

void main()

{ int i,j,k,a[N],temp;

printf("请输入%d个整数:",N);

for(i=0;i

scanf("%d",&a[i]);

for(i=0;i

{ k=i;

temp=a[i];

for(j=i+1;j

if(temp>a[j])

{k=j;

temp=a[j];

}

if (k!=i)

{a[k]=a[i];

a[i]=temp;

}

}

printf("排序后的数列:");

for(i=0;i

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

}

8. #include

void main()

{ int i=0,count1=0,count2=0,count3=0;

char s[20];

printf("请输入字符串:");

gets(s);

while(s[i]!='\0')

{ if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')

count1++;

else

if(s[i]>='0'&&s[i]<='9')

count2++;

else count3++;

i++;

}

printf("字符%d个,数字%d个,其他%d个。",count1,count2,count3);

}

9. #include

#include

void main()

{char s[20],ch;int i=0;

printf("请输入字符串:");

gets(s);

while(s[i]!='\0')

{s[i]+=3;

if (s[i]>'z')

s[i]-=26;

i++;

}

printf("加密后:");

puts(s);

}

10. #include

#include

void main()

{char s1[20],s2[20];int i=0,j=0;

printf("请输入字符串1:");

gets(s1);

printf("请输入字符串2:");

gets(s2);

while (s1[i]!='\0')

i++;

s1[i]=s2[j];

do

{i++;

j++;

s1[i]=s2[j];

}

while (s2[j]!='\0');

printf("连接后:");

puts(s1);

}

11. #include

#include

void main()

{char s1[20],s2[20],s3[40];int i=0,j=0,k=0;

printf("请输入按字母序排列的字符串1:");

gets(s1);

printf("请输入按字母序排列的字符串2:");

gets(s2);

while(s1[i]!='\0'&&s2[j]!='\0')

{if (s1[i]

{ s3[k]=s1[i];

k++;i++;

}

else

{ s3[k]=s2[j];

k++;j++;

}

}

while(s1[i]!='\0')

{ s3[k]=s1[i];

k++;i++;

}

while(s2[j]!='\0')

{ s3[k]=s2[j];

k++;j++;

}

s3[k]='\0';

printf("合并后的字符串:");

puts(s3);

}

12. #include

void main()

{int i,j,a[5][5];

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

for(j=4;j>=0;j--)

{if(j>=i)

a[i][j]=1;

else

a[i][j]=a[i][j+1]+1;

}

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

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

printf("%3d",a[i][j]);

printf("\n");

}

}

13. #include

void main()

{int i,j,a[8][8];

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

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

{if(j==i||(i+j)==7)

a[i][j]=1;

else

a[i][j]=0;

}

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

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

printf("%3d",a[i][j]);

printf("\n");

}

}

14. #include

void main()

{int i,j,sum,a[5][3]={20,30,26,30,20,25,25,50,20,46,15,10,35,15,12};

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

{sum=0;

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

sum+=a[i][j];

switch (i)

{case 0:printf("第一个");break;

case 1:printf("第二个");break;

case 2:printf("第三个");break;

case 3:printf("第四个");break;

case 4:printf("第五个");break;

}

printf("企业的总产值是:%d万元。\n",sum);

}

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

{ sum=0;

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

sum+=a[i][j];

switch (j)

{case 0:printf("A");break;

case 1:printf("B");break;

case 2:printf("C");break;

}

printf("产品的总产值是:%d万元。\n",sum);

}

}

15. #include

#define N 5

void main()

{int i,j,a[N][N],b[N];

printf("请输入%d个数:",N);

for(i=0;i

scanf("%d",&b[i]);

for(i=0;i

{for(j=i;j

a[i][j]=b[j-i];

for(j=0;j

a[i][j]=a[j][i];

}

for(i=0;i

{for(j=0;j

printf("%3d",a[i][j]);

printf("\n");

}

}

16. #include

void main()

{int i=0,j=0,m,n,a[20],b[20];

printf("请输入数组a中的数据,以0结束:");

scanf("%d",&a[i]);

while(a[i]!=0)

{ i++;

scanf("%d",&a[i]);

}

printf("请输入数组b中的数据,以0结束:");

scanf("%d",&b[j]);

while(b[j]!=0)

{j++;

scanf("%d",&b[j]);

}

for(m=0;m

for(n=0;n

{ if(a[m]==b[n])

printf("%3d在a中下标为%d,在b中下标为%d。",a[m],m,n);

}

}

17. #include

void main()

{int a[20][20],b[20][20],flag1[20][20],flag2[20][20],i,j,s,t,k,l,m,n;

printf("请输入数组a的一维长度:");

scanf("%d",&k);

printf("请输入数组a的二维长度:");

scanf("%d",&l);

printf("请输入数组a中的数据:");

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

{ for(j=0;j

{ printf("%3d",a[i][j]);

flag1[i][j]=1;

}

printf("\n");

}

printf("请输入数组b的一维长度:");

scanf("%d",&m);

printf("请输入数组b的二维长度:");

scanf("%d",&n);

printf("请输入数组b中的数据:");

for(i=0;i

for(j=0;j

scanf("%d",&b[i][j]);

for(i=0;i

{ for(j=0;j

{ printf("%3d",b[i][j]);

flag2[i][j]=1;

}

printf("\n");

}

for(i=0;i

for(j=0;j

for(s=0;s

for(t=0;t

if(a[i][j]==b[s][t])

{flag1[i][j]=0;

flag2[s][t]=0;

}

printf("只在一个数组中存在的有:");

for(i=0;i

for(j=0;j

if(flag1[i][j])

printf("%3d",a[i][j]);

for(i=0;i

for(j=0;j

if(flag2[i][j])

printf("%3d",b[i][j]);

}

18. #include

void main()

{int a[101],i,j,count=0;

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

a[i]=1;

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

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

if(j % i ==0)

a[j]*=-1;

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

if(a[i]==1)

{ count++;

printf("第%d张正面朝上。\n",i);

}

printf("共有%d张正面朝上。\n",count);

}

19. #include

void main()

{int n,i,j,k,top,bottom,left,right,goup,godown,goleft,goright,a[20][20];

i=0;j=0;goright=1;goup=0;godown=0;goleft=0;

printf("请输入方阵的维数:");

scanf("%d",&n);

top=-1;bottom=n;left=-1;right=n;

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

{ a[i][j]=k;

if(goright)

{ if(j

j++;

else

{goright=0;

godown=1;

top++;

i++;

continue;

}

}

if(godown)

{ if(i

i++;

else

{godown=0;

goleft=1;

right--;

j--;

continue;

}

}

if(goleft)

{ if(j>left+1)

j--;

else

{goleft=0;

goup=1;

bottom--;

i--;

continue;

}

}

if(goup)

{ if(i>top+1)

i--;

else

{goup=0;

goright=1;

left++;

j++;

continue;

}

}

}

for(i=0;i

{ for(j=0;j

printf("%5d",a[i][j]);

printf("\n");

}

}

第7章

第8章

三、编程题

1.

#include "stdio.h"

#define N 10

void main()

{

int i_val[N];

int *p;

int i,j,val,k;

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

scanf("%d",i_val+i);

p = &i_val[0];

printf("排序前结果如下:\n");

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

printf("%d\n",*(p+i));

printf("\n");

for( i = 0 ; i < N-1; i++)

{

k=i;

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

if (p[j] < p[k])

k=j;

if (k!=i)

{

val=p[i];

p[i]=p[k];

p[k]=val;

}

}

printf("排序后结果如下\n");

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

printf("%d\n",*(p+i));

printf("\n");

}

2.

#include "stdio.h"

#define N 3

void main()

{

int i_val[N][N]={11,12,13,21,22,23,31,32,33};

int *p;

int nSum=0;

int i;

p = i_val[0];

printf("求对角线元素之和");

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

{

nSum += p[i*N+i];

nSum += p[(N-i-1)*N+i];

}

if(N%2) nSum-=p[N/2*N+N/2];

printf("结果如下:\n");

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

}

3.

#include "stdio.h"

#define N 5

void f(int val[] ,int size)

{

int min_index=0,max_index= 0;

int i =0;

int v;

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

{

if(val[i]

if(val[i]>val[max_index]) max_index = i;

}

v = val[max_index];

val[max_index] = val[size-1];

val[size-1]= v;

v = val[min_index];

val[min_index] = val[0];

val[0]= v;

}

void main()

{

int val[N]={91, 55 ,11, 44 , 33};

int i;

printf("执行函数f之前\n");

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

printf("%d\n",*(val+i));

f(val,N);

printf("执行函数f之后\n");

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

printf("%d\n",*(val+i));

printf("\n");

}

4.

#include "stdio.h"

#include "string.h"

#define N 5

void strcpy2(char * src ,char *dest) {

int i = 0;

int len = strlen(src);

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

{

dest[i]= src[i];

dest[len+i]= src[i];

}

dest[2*len]=0;

}

void main()

{

char a[1024],b[1024];

scanf("%s",a);

strcpy2(a,b);

printf("%s\n",b);

}

5.

#include "stdio.h"

#include "string.h"

#define N 5

int ishuiwen(char * str)

{

int i = 0;

int len = strlen(str);

for(i = 0 ; i < len /2 ; i++)

{

C语言题库及答案

C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

C语言常见复习题(选择填空)及参考答案

C语言常见复习题及参考答案 一、选择题 1.下述标识符中,()是合法的用户标识符。 A.A#C B.getch C.void D.ab* 2.在C语言中,字符型数据在内存中是以()形式存放的。 A.原码 B.BCD码 C.反码 D.ASCII码 3.以下选项中不合法的用户标识符是()。 A.abc.c B.file C.Main D.PRONTF 4.以下选项中不合法的用户标识符是()。 A.123 B.printf C.Anbsp; D.Dim 5.可以在C语言程序中用做用户标识符的一组标识符是()。 A.void B.as-b3 C.for D.2c define -123 -abc Do WORD If cas SIG 6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。 (1)A.001 B.table_1 C.0_t D.k% Int t*.1 W10 point (2)A.Fast_ B.void C.pbl D. Fast+Big abs fabs beep (3)A.xy_ B.longdouble C.*p D.CHAR 变量1 signed history Float 7.()是构成C语言的基本单位。 A.函数 B.过程 C.子程序 D.子例程 8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。

(1).A.包含3个字符 B.包含2个字符 C.包含1个字符 D.无定值,说明不合法 (2).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 (3).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 9.若x为int型变量,则执行以下语句后,x的值为 x=6; x+=x-=x*x A.36 B.-60 C.60 D.-24 10.在C语言中,char 型数据在内存中是以()形式存储的。 A.原码 B.补码 C.ASCII码 D.反码 11.以下运算符中优先级最低的算符为(),优先级最高的为()。 A.&& B.& C.|= D.|| E.?: F.!= 12.若有运算符>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列顺序为 A.*= << > % sizeof B.<< *= > % sizeof C.*= > << sizeof % D.*= > << % sizeof 13.若有以下类型说明语句 char w; int x; float y; double z; 则表达式w*x+z-y 的结果是()类型。 A.float B.char C.int D.double 14.若w,x,y,z 均为int 型变量,则执行下面的语句后, w=(1), x=(2), y=(3), z=(4)。 w=5; x=4; y=w++*w++*w++; z=--x*=--x*--x;

《C语言程序设计》课后习题答案

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.1什么是算法16 2.2简单的算法举例17 2.3算法的特性21 2.4怎样表示一个算法22 2.4.1用自然语言表示算法22 2.4.2用流程图表示算法22 2.4.3三种基本结构和改进的流程图26 2.4.4用N S流程图表示算法28 2.4.5用伪代码表示算法31 2.4.6用计算机语言表示算法32 2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 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",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

C语言课后习题答案(最终)

第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答:

最新c语言课后习题答案汇总

c语言课后习题答案

第二章习题 2.什么叫做结构化算法?为什么要提倡结构化算法? 答:结构化算法是由一些基本结构顺序组成的。在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本的结构范围内。一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变。 跟结构化算法比较起来,非结构化算法有以下缺点: 流程不受限制的随意转来转去,使流程图豪无规律使人在阅读的时候难以理解算法的逻辑.难以阅读,也难以修改,从而使算法的可靠性和可维护性难以保证。 4. 第三章习题 1.#include #include void main() { unsigned int n;

float p,p1,r=0.09; scanf("%u",&n); p=pow(1+r,n); p1=(p-1)*100; printf("%5.2f%%\n",p1); } 运行结果:输入,回车,见结果: 2.#include #include int main() { int bj=1000; float r1,r2,r3,r5,r0,lx1,lx2,lx3,lx4,lx5; r1=0.0414; r2=0.0468; r3=0.0540; r5=0.0585; r0=0.0072; lx1=bj*r5; lx2=bj*(1+r2)*r3; lx3=bj*(1+r3)*r2; lx4=bj*pow(1+r1,5); lx5=bj*r0*5; printf("lx1=%f lx2=%f lx3=%f lx4=%f lx=5%f\n",lx1,lx2,lx3,lx4,lx5); return 0; } 运行结果: 3.#include #include int main() { long d,p; d=300000; p=6000; double m,r=0.01; m=log(p/(p-d*r))/log(1+r); printf("%4.2f",m); return 0;

大学C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题库吧。加油! 一单项选择题库 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C )。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

C语言课后习题答案(完整版)-第四版-_谭浩强

C语言课后习题答案-第四版- 谭浩强(1-7) 第一章 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } #include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } #include #include int main()

{float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和 return 0; } #include #include int main() {double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

C语言课后作业答案

3-5-1正确 大写字母转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') { if(ch>='A'&&ch<='Z')ch=ch+32; else ch=ch-32; } else ch=ch; printf("%c\n",ch); } 3-5-2大写转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); ch=ch; { if(ch>='A'&&ch<='Z')ch=ch+32; else ch=ch-32; } printf("%c\n",ch); } 3-5-3大写转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); if(ch>='a'&&ch<='z') ch=ch-32; else if(ch>='A'&&ch<='Z') ch=ch+32; else ch=ch; printf("%c\n",ch); } 3-6-1正确分段函数

#include void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x<=1) y=x; else { if(1 void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x>=10) y=3*x-8; else if(x>1) y=2*x+1; else y=x; printf("x=%d,y=%d\n",x,y); } 3 -6 -3正确 #include void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x<=1) y=x; else if(1=10) y=3*x-8; printf("x=%d,y=%d\n",x,y); } 计算器正确 #include void main() {

2019二级C语言题库参考答案解析

2019年C语言考题答案 1、程序填空题 给定的程序的功能是调用fun 函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat 的二进制中。 填空:( 1) STYPE(2)FILE(3)fp 改错:(1) for(i=0;i<=sl;i++)(2)t[2*sl]= 0“ 或t[sl+sl]= 0“ 编程: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b% 10); 2、程序填空题给定程序的功能是:从键盘输入若干文本 (每行不超过80 个字符),写到文件myfile4.txt 中,用-1 作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText 和Writetext 实现。 填空:(1)*fw(2)str (3) str 改错:(1)voidfun(longs,long*t)(2) s1=s1*10; 编程:int i,j=0,min=a[0].s; for(i=0;i

else if(min==a[i].s) b[j++]=a[i]; } return j; 3、程序填空题 给定程序中,函数fun 的功能是:讲自 然数1~10 以及它们的平方根写到名为myfile3.txt 的文本中,然后再按顺序读出显示在屏幕上。 填空:( 1) fp( 2)fclose(fp)(3)myfile3.txt 改错:( 1)for(i=j+1;i

(完整版)C语言选择题(附答案)

第一单元C语言概述 一、选择题 1、C语言中主函数的个数为(A)个。 A)1 B)2 C)无穷个D)任意个 2、以下关于C语言描述错误的是(D)。 A)一个C程序总是从main函数开始执行T B)每个语句和数据声明的最后必须有一个分号T C)C语言的注释符是以“/*”开始并以“*/”结束的T D)一个C程序可以包含多个main函数F 3、C 语言源程序文件后缀为(C )。 A).EXE B).OBJ C).C D).ASM 4、C语言是由(C )组成的。 A)子程序B)主程序与子程序C)函数D)过程 5、C语言属于(B )语言 A)机器语言B)汇编语言C)高级语言D)面向对象语言 第二单元C语言基础 一、选择题 1、C语言中普通整型变量int在内存中占(B )字节。 A)1 B)2 C)3 D)4 2、下列不是C语言基本数据类型的是(A )。 A)字符型B) 整型 C) 浮点型D) 结构体 3、有关自增、自减运算,以下只有(D )是正确的。 A) ---f B) ++78 C) a—b++ D) d++ 4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (AB)的值是(A )。 A)0 B)10 C)1 D)5

5、若有x=1,y=2,z=3,则表达式(x=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 7、判断整型变量digit是否为数字的正确表达式是(C )。 A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’) C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch) 8、一个C程序的执行是从(A )。 A)本程序的main函数开始,到main函数结柬 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 9、在以下标识符中,合法的是(C ) A)if B)0xy C)_xy D)case 10、C语言中各种类型的数据其实决定了占用内存的字节数。float占(C )。 A)一字节B)二字节C)四字节D)八字节 11、下列各选项中,(A )是有效的标识符。 A)ab B)3day C)day-3 D)#abc 12、以下叙述正确的是(C ) A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中不允许a=10这种赋值。 C) 在C程序中,%是只能用于整数运算的运算符 D) 在C程序中,无论是整数还是实数,没有什么区别 13、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( B )。 A)132↙B)1,3,2↙ C)a=1 b=3 c=2↙D)a=1,b=3,c=2↙ 14、设整型变量a为5,使b不为2的表达式是( C )。 A)b = a/2 B)b = 6-(--a) C)b=a%2 D)b=a>3?2:1

C语言课后答案

习题一 一、简答题 1.顺序结构、选择(分支)结构和循环结构。 2. (1)

(2)

3.编辑、编译、连接和运行 二、填空题 1. Ctrl+F9;Alt+F5;F2。 2. main(主) 3. main(主) 4. 任意 5. /* */ 不 6. ; 7.。 程序: include studio.h main{} /* this program prints the number of weeks in a year. /* ( int s s:=52; print(There are s weeks in a year"); 正确的为: #include main() /* this program prints the number of weeks in a year. */ { int s; s=52; printf("There are s weeks in a year"); }

习题二 一、选择题 1、C 2、B,D,F,G 3、C 4、A 5、C 6、B 二、填空题 1、声明;使用。 2、整型、浮点型(实型)、字符型。 3、hat_1,cat1,all, Dollar, piece_f, SIN, _ , FALSE. 4、'A'(字符),005(整型),3e0(整型),'\\'(字符),'\05'(字符), 1.2e+5(整型),0xf12(整型)。 5、(1)6+(4+5)*(4+5)/(2+3) (2)sin(a+b)*ain(a+b)/ (4*2)/(3*2)+2 三、读程题 1.若x为float型,其原值为5,a=2,b=4.7。写出下列表达式运算后x的值。 (1)x=(int)(b-a)%3*a/4-a (2)x=(x=b+1)+(int)(b)%10/2.0 (3)x+=x (4)x-=x (5)x*=x+x (6)x/=x+x (7)x+=x-=x*=x (8)x%=x (9)x=3*4,5*6 答案:(1)-1,(2)7.7,(3)10,(4)0,(5)50,(6)0.5,(7)0,(8)非法,(9)12。 2.写出下面程序的运行结果。 #include void main() { int a=2; printf("abcdefghijk\n"); printf("lmnop/n"); printf("I am a /n beginner of C !"); printf("I am a \n beginner of C !"); printf("%d + %d = %d",a,a,a); } 答案: abcdefghijk

C语言试题及答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

C语言选择题(含答案)

C语言选择题(含答案) 选择题 1.以下叙述正确的是_____。 A) 在C程序中,main函数必须位于程序的最前面。 B) C语言本身没有输入输出语句。 C) C程序的每行只能写一条语句。 D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 2.下面四个选项中,均是不合法的用户标识符的选项是。 A) A B) float C) b-a D) _123 P_0 1a0 goto temp do _A int INT 3、下列四个选项中都是合法的转义字符的 A) ‘\’’‘\\’‘\n’B) ‘\’‘\017’‘\”’ C) ‘\018’‘\f’‘xab’D) ‘\\0’‘\101’‘x1f’ 4、设所有变量均为整型,则表达式z=(a=2,b=5,b++,a+b)的值是: A)7 B)8 C)6 D)2 5、若有代数式,则不正确的C语言表达式是: A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3 6、若希望当A的值为奇数时,表达式的值为”真”, A的值为偶数时,表达式的值为”假”。则以 下不能满足要求的表达式是_________。 A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%2 7、以下程序的运行结果是 : main() { int m=6;

if(m++> 6) printf(" %d\n",m); e1se printf("%d\n",--m ); } A)4 B)5 C) 7 D) 6 8、当a=1,b=3,c=5,d=4,执行完下面一段程序后x 的值是 : if(a正确的输出结果为 main() { int x,y,z scanf("%d%d%d",&x,&y,&z ); printf(“x+y+z=%d\n” ,x+y+z);。 } A)x+y+z=48 B)x+y+z=35 C)x+y+z=35 D)不确定值 10、已知各变量的类型说明如下 int k,a,b; unsigned long w= 5; double x=1.42; 则以下不符合C语言语法的表达式是 : A) x%(-3) B) w+=-2

C语言课后练习及答案

作业A: 一、单项选择题 1、如果要把常量327存入变量a中,a不能定义的类型是哪一个?() A)int B)char C)long D)float 2、若x 为unsigned int 型变量,则执行下列语句后x值为() x = 65535; printf(“%d\n”,x); A)65535 B)1 C)无定值D)-1 3、有以下程序 main() {int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a

相关文档
相关文档 最新文档