C语言 复习题

  • 格式:doc
  • 大小:74.25 KB
  • 文档页数:8

山东理工大学成人高等教育 C语言复习题一、判断正误()1.main函数必须位于整个C语言程序的开头。

()2.在C语言程序中不能使用二进制整数。

()3.’\101’和'\n'都代表单个字符。

()4.C语言程序中的变量必须先定义后使用。

( ) 5.a=3是一个赋值表达式。

( ) 6.一个函数可以有多个返回值。

( ) 7.一个数组名实际上是代表一个地址。

( )8.C语言中不区分字母的大小写。

( )9.'a'和'\n'都是字符型常量。

( )10.5%3的结果是2。

( )11.在C语言中表示逻辑运算结果时,以1表示真,以0表示假。

()12.计算字符串长度时,’\0’不包括在内。

()13.在一条if-else语句中,若if和else之间有多条语句,则必须用花括号括起来。

()14.一个数组的所有元素具有相同的数据类型。

二、填空1.C语言的标识符只能由字母、和组成。

2.用于从循环体中跳出的语句是语句。

3.一个函数是由和两部分组成的。

4.用双引号括起来的若干个字符称为常量。

5.有符号整数在内存中是以二进制码形式存储的。

6.若有int n=3.96;则n的结果为。

7.若有int a=5; 则printf(“%d”,++a);的结果为。

8.若有char s[10]="abcd1234"; 则strlen(s)的结果为。

9.C语言程序的基本组成单位是,C程序的执行总是从函数开始。

10.表达式10!=9的值是;若a=3,b=5,则表达式a&&!b的值是11.若x=10,y=5,则x>y?2:3的结果为。

12.已知字母A的ASCII码为十进制数65,且c为字符型,则执行语句c='A'+3;后,c 中的值为_______;若有说明语句:char c='\172';则变量c包含个字符。

13.若有说明:int i,j=7,*p=&i;,执行i=j;语句后*p的值为。

三、写出下列程序的运行结果1.main() 运行结果为:{int f[6]={1,2,3,4,5,6},i;for(i=5;i>=0;i--)printf("%d\n",f[i]);}2.main() 运行结果为:{int f[5],i;for(i=0;i<=4;i++){f[i]=i*i;printf("%d\n",f[i]);}}3.下面程序的输出结果是#include <stdio.h>main(){ char c1,c2;c1='B';c2=c1+2;putchar(c1);putchar('\n');putchar(c2);}4.下面程序的输出结果是void swap(int x,int y){ int c=0;c=x;x=y;y=c;printf(“%d,%d\n”,x,y);}main(){ int a=10,b=20;swap(a,b);printf(“%d,%d\n”,a,b);}四、补足程序1.程序功能:用辗转相除法求最大公约数。

main( ){int m,n,r;scanf("%d%d",&m,&n);while( ){r= ;m= ;n= ;}printf("gcd=%d\n", );}2.程序功能:从键盘输入10个整数,然后按照相反的顺序输出。

main(){ int i,a[10];for(i=0; ;i++)scanf ("%d",);for ( ; ; )printf ("%d ",a[i]);}3.下面程序功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。

#include <stdio.h>main(){ int i, j;for(i=0; i<10; i++){j=i*10+6;if((3) ) continue;printf("%d",j);}}五、编程序1.用循环编程序求10的阶乘(15分)2.已知00012112<=>⎪⎩⎪⎨⎧-+=x x x x x y 若若若。

从键盘输入x 的值,求y 的值并输出。

(15分)3.用循环编程序求20+21+22+……+231。

(15分)4.从键盘输入若干个学生某门课程的成绩,求出其平均分并输出。

(15分)5.不调用strcpy 函数,编程序实现字符串的复制。

(15分)6. 先写出求k!的被调函数,再写出调用该函数求6!+9!的主调函数。

(15分)7.从键盘输入一个字符,若是大写字母则转换成小写字母,若是其它字符则保持不变,然后输出。

8.编写计算s=1+2+3+…+100的程序。

9.若k 为正整数,编程序求K!(阶乘)。

10.从键盘输入10个数存入一维数组中,输出其中的最大数和最小数及其下标。

参考答案一、判断正误1、错2、对3、对4、对5、对6、错7、对8、错9、对10、对11、对12、对13、对14、对。

二、填空1.数字 下划线2. break3.函数头 函数体4.字符串5. 补6. 37. 6 8. 8 9. 函数 main 10. 1 0 11. 2 12. D 113. 7三、写出下列程序的运行结果1.(每个数1分)6543212. 014916(每个数1分)。

3.B (2分)D (2分)4.20,10 (3分)10,20 (3分)四、补足程序1.n!=0m%nnrm2. 1. i<=9 &a[i] i=9 i>=0 i—3.(2)str1 (3分)五、编程序1.main(){long p;int i;p=1;for(i=1;i<=10;i++)p=p*i;printf("p=%ld\n",p);}2.main(){float x,y; (2分)scanf("%f",&x); (2分)if(x>0) (1分)y=2*x+1; (2分)if(x==0) (1分)y=1; (2分)if(x<0) (1分)y=2*x-1; (2分)printf("y=%f\n",y); (2分)}3.#include <math.h>main(){float s;int i;。

s=0;for(i=0;i<=63;i++)s=s+pow(2,i);printf("s=%f\n",s);}4. #include "stdio.h"main(){float g,sum=0,ave;int n=0;while(1){scanf("%f",&g);if(g==-1)break;sum=sum+g;n++;}ave=sum/n;printf("平均成绩=%f\n",ave);}5..#include <stdio.h>#include <string.h>main( ){char t[100],s[100]="Hello";int i;i=0;while(i<=strlen(s)){ t[i]=s[i];i++;}puts(t);}6.#include <stdio.h>float fact(int k){ float f;int i;f=1;for(i=1;i<=k;i++)f=f*i;return f;}main(){float s;s= fact(6)+fact(9);printf("s=%f\n",s);}7.输入三角形边长,求面积#include <math.h>(2分)#include <stdio.h>void main(){ float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);(2分)s=1.0/2*(a+b+c);(2分)area=sqrt(s*(s-a)*(s-b)*(s-c));(2分)printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s);(2分)printf("area=%7.2f\n",area);(2分)}8.从键盘输入一个字符,若是大写字母则转换成小写字母,若是其它字符则保持不变,然后输出。

#include <stdio.h>(2分)main(){ char c;(2分)c=getchar();(2分)if(c>=’A’&&c<=’Z’)(2分)c=c+32;(2分)putchar(c);}(2分)9.编写计算s=1+2+3+…+100的程序。

main(){ int s,i;(2分)s=0;(2分)for (i=1;i<=100;i++)(3分)s=s+i;(3分)printf(“%d”,s);(2分)}10.若k为正整数,编程序求K!(阶乘)。

main(){ int k,f,i;(2分)f=1;(2分)scanf(“%d”,&k);(2分)for( i=1;i<=k;i++)(2分)f=f*i;(2分)printf(“%d”,f);(2分)}欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求。