C语言程序设计习题集--Final - answer

更新时间:2024-06-07 11:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1~2章 C语言概述、算法、数据类型、运算符与表达式

一、选择题

ACDCB CCDCB D 二、填空题 1、n=20 2、a=66,b=E

第3章 顺序程序设计

3.1顺序结构 一、选择题 BAAD

二、程序阅读 1、12 24 0 12 2、2,3,2,2 3、0 三、编程 1

#include #include void main() { float a,b,c,s,area; scanf(\ s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(\} 2

#include #include void main() { float a,b,c,del,x1,x2; scanf(\ del=b*b-4*a*c; if (del>=0) { x1=(-b+sqrt(del))/(2*a); x2=(-b-sqrt(del))/(2*a); printf(\ } else printf(\没有 实根\}

3

#include void main() { int c,f; c=26; f=9.0/5.0*c+32; printf(\的华氏温度是%d\}

3.2选择结构 一、选择题

DBBCDC 二、程序阅读 1、 |a|+|b|=61 2、 PQ 3、 -1 4、 60~69

60 error!

5、 0,1

6、 a+b+c=15 三、编程 1

#include void main() { int a,b,c,min; scanf(\ min=a; if (min>b) min=b; if (min>c) min=c; } 2

#include void main() { int a; scanf(\ if(a%3==0 && a%5==0 && a%7==0) printf(\ else

} 3

printf(\

#include #include void main() { float x,y; scanf(\ if (x<0) y=fabs(x); else if(x>=0 && x<=2) y=sqrt(x+1); else if (x>=2 && x<4) y=pow(x+2,3); else y=2*x+5; printf(\} 4

#include void main() {

float rate,tax,salary; scanf(\ if(salary<=850) rate=0;

else if(salary>1350 && salary<=2850) rate=0.1;

else if(salary>2850 && salary<5850) rate=0.15; else rate=0.2;

tax=rate*(salary-850);

printf(\}

3.3循环结构 一、 填空题: 1、 22 2、 23

3、 46 4、 117

二、 选择题:

1.C 2.D 3.B 4.B 5.B 6.C 7.C 8.C 9.B 10.D

三、 程序阅读: 1、 输出:33 2、 输出:24

3、 2#4#7#11#16# 4、 3#2#0#0#1# 5、 B,A,D,C 6、 D,A,B,C 7、 B,C,A,D 8、 A,D,D,C 9、 C,C,A 10、 B,D,A 11、 A,D,C

四、编程

1.#include

#include void main() { int x;

printf(\ for(x=5;x<=1000;x++)

printf(\}

2.#include #include main() { int i,flag; double pi,item; i=1; flag=1; pi=0; item=1.0; while(fabs(item)>=0.00001) { item=flag*1.0/i; pi=pi+item; flag=-flag;

i=i+2; } pi=pi*4; printf(\}

3.#include \main( ) { int j,m,k;

printf(\ scanf(\ for (j=2; j<=m-1; j++) if (m%j==0) break; printf(\ \ if (j>=m)

printf(\ else

printf(\ }

4.#include main()

{ int i,num1,num2,num3; num1=1;num2=1;

printf(\ %d \ for(i=3;i<=10;i=i+1) { num3=num1+num2; printf(\ \ num1=num2; num2=num3; } }

第4章 数组一、 选择题:

1. D 2.D 3.A 4.C 5.C 6.C 7.D 13.D 14.A 15.B

二、 程序阅读: 1、 A,B,B,D 2、 C,D,A,B 3、 B,B 4、 D,C,A 5、 C,D 6、 C,A

8.B 9.D 11.D

10.B 12.D

7、 1#2#3#1#1#3 8、 298

三、 编程:

1、#include

void main( ) {

int mark, a, p, f; a = p = f = 0; printf(\scanf (\ while (mark >0){ if(mark >= 85) a++; else if (mark >= 60) p++; else f++;

scanf (\ }

printf(\printf(\printf(\

}

2、#include void main( )

{ int a[10],count=0,i; float average,sum=0; for(i=0;i<10;i++) { scanf(\ sum=sum+a[i]; } average=sum/10; for(i=0;i<10;i++) if(a[i]>average) count=count+1; printf(\平均值为%f 大于平均值的数有%d个\} 3.

#include main( ) { int a[10]; int i,j,t,n;

printf(“请输入一个正整数n(1

printf(“请输入数据:”);

for (i=0; i

for (j=0; ja[i])

{ t=a[j];a[j]=a[i];a[i]=t; } printf(\for (i=0; i

4.#include void main()

{int a[6][6],n,i,j,x,y,max;

printf(“请输入一个正整数n(1≤n≤6):”); scanf(“%d”,&n);

printf(“请输入一个n行n列的矩阵:\\n”); for (i=0;i

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

max=a[0][0]; x=0;y=0; for (i=0;i

if (fabs(a[i][j])>max) {max=a[i][j];x=i;y=j;}

printf(“绝对值最大的元素为:%d,下标分别为:%d,%d\\n”,max,x,y); }

第5章 函数

一、选择题

(1) (2) (3) (4) (5) (6) (7) i. ii. iii. iv.

A B C B D C B D A C

(8) i. D ii. C

iii. iv. (9) i. ii. iii.

B A D B B C C B B

(10) i. ii. iii. iv.

二、程序阅读题

(1) 3,5 (2) 4 (3) s=10 (4) 5,25 三、程序设计

1

# include # include int isprime(int m) { int k, n, res;

if(m == 1) return 0; res = 1;

n = (int)sqrt(m);

for(k = 2; k <= n; k++) if(m%k == 0){ res=0; break; }

return res; }

void main( ) { int m,n; int sum=0; int i; do { printf(\ mn);

for(i=m;i<=n;i++) { if(isprime(i)) { sum+=i; } } printf(\} 2

int max_value(int arr[][4]) { int i,j,max; max=arr[0][0]; for(i=0;i<2;i++) for(j=0;j<4;j++) { if(max

# include # include

int isTheFineNumber(int n) { int a,b,c,x=0,i; for(i=101;i

void main() { int n; scanf(\ printf(\}

第7章 预处理命令

CBBBD DDBC

第8章 指针

一、选择题:

1、 D 2、 A 3、 D 4、 A 5、 D 6、 B 7、 C 8、 D 9、 B 10、 D 11、 D

二、程序阅读题: 1、 C 2、 A 3、 B 4、 C 5、 A

三、程序设计题: 1

#include void main()

{ void swap(int *pointer1,int *pointer2); int *p1,*p2; int a=1,b=2; p1=&a; p2=&b;

swap(p1,p2);

printf(\ }

void swap(int *p1,int *p2) { int temp; temp=*p1; *p1=*p2;

*p2=temp; } 2

#include void main()

{ int a[10],*p1,i,j,temp; p1=a; for(i=0;i<10;i++) scanf(\ for(i=0;i<10;i++) {p1=a; for(j=0;j<10-i;j++,p1++) if(*p1>*(p1+1)) { temp=*p1; *p1=*(p1+1); *(p1+1)=temp; } } p1=a;

for(i=0;i<10;i++,p1++) printf(\} 3

#include void main() { int upper=0,lower=0,digit=0,space=0,other=0,i=0; char *p,s[20];

printf(\

while((s[i]=getchar())!='\\n') i++; p=&s[0];

while(*p!='\\n')

{if(('A'<=*p)&&(*p<='Z')) ++upper;

else if (('a'<=*p)&&(*p<='z')) ++lower; else if (*p==' ') ++space;

else if (('0'<=*p)&&(*p<='9')) ++digit; else ++other;

p++; }

printf(\ lower case:%d\printf(\ digit:%d other:%d\} 4

strmcpy(char s[],char t[],int m) { char *p1,*p2,i; p1=s; p2=t+m;

while(*p2!='\\0') { *p1=*p2; p1++; p2++; } } 5

#include void main() { int s[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int *p,i,j,t; p=&s[0][0]; for(i=0;i<4;i++) for(j=i;j<4;j++) {t=*(p+4*i+j); *(p+4*i+j)=*(p+4*j+i); *(p+4*j+i)=t; } }

第9章 结构体共用体

一、选择题:

1. D、D、D、D、C 2. D 3. A

4. BC (选项B改为(*p).pk,结果为C) 5. D

二、选择填空题:

1. B 2. C

三、编程题: 1

#include struct { int year; int month; int day; }date;

void main() { int days;

printf(\

scanf(\ switch (date.month) { case 1:days=date.day;break; case 2:days=date.day+31;break; case 3:days=date.day+59;break; case 4:days=date.day+90;break; case 5:days=date.day+120;break; case 6:days=date.day+151;break; case 7:days=date.day+181;break; case 8:days=date.day+212;break; case 9:days=date.day+243;break; case 10:days=date.day+273;break; case 11:days=date.day+304;break; case 12:days=date.day+334;break; }

if((date.year%4==0&&date.year0!=0||date.year@0==0) &&date.month>=3)days+=1; printf(\} 2

#include struct { int hour; int min; int sec;

}time1,time2,time3;

void main() {

printf(\

scanf(\ printf(\

scanf(\ time3.sec=time2.sec-time1.sec; if(time3.sec<0) {time3.sec+=60; time2.sec--; }

time3.min=time2.min-time1.min; if(time3.min<0) {time3.min+=60; time2.min--; } time3.hour=time2.hour-time1.hour; printf(\ } 3

#include #define N 5 struct student { char num[6]; char name[6]; int score[4]; }stu[N];

void main()

{ void print(struct student stu[6]); int i,j; for(i=0;i

{ printf(\ scanf(\ } printf(\ print(stu); } }

void print(struct student stu[6]) {int i,j;

printf(\ No. name score1 score2 score3\\n\for(i=0;i

第10章 文件

一、选择题 C C B B A C C D D C D D D 二、编程 1.

#include #include void main() { FILE *fp; char str[80]; if((fp=fopen(\ printf(\ while(!feof(fp)) { fscanf(fp,\ if(strstr(str,\ printf(\ } fclose(fp); } 2.

#include

#include void main() { FILE *fp; int n,sum=0; if((fp=fopen(\ printf(\ while(!feof(fp)) { fscanf(fp,\ sum+=n; } fprintf(fp,\ fclose(fp); } 3.

#include #include

void main(int argc,char *argv[ ]) { FILE *in,*out; char ch; if (argc!=3) { printf(\ exit(0); } if((in=fopen(argv[1],\ { printf(\ exit(0); } if((out=fopen(argv[2],\ { printf(\ exit(0); } while(!feof(in)) fputc(fgetc(in),out); fclose(in); fclose(out); } 4.

#include #include void main() { FILE *fp; int n,a=0,b=0,c=0; if((fp=fopen(\ printf(\ while(!feof(fp)) { fscanf(fp,\ if(n>0) a++; else if(n<0) b++; else c++; } printf(\正数有%d个,负数有%d个,零有%d个\\n\ fclose(fp); }

本文来源:https://www.bwwdw.com/article/uzv6.html

Top