C语言程序填空练习题(一)
C语言程序填空题加答案

1、 下面一段程序执行后,变量s的值等于【 22 】. int a,s=0; for(a=10;a>0;a-=3)s+=a; 2、 下面一段程序的功能是计算1到100之间的整数之 和,并将结果保存到变量s中. int a=101,s=0; --a 或 a-- 或 a=a-1 while(【 】,a>0 )s=s+a; 3、 下面一段程序执行后,变量s的值等于【 10 】. int a=10,s=0; do{s=s+a,a++;}while(a<1); 4、 下面一段程序执行后,变量s的值等于【 11 】. int a,s=0; for(a=1;a<11;a++); s=s+a;
16、 若所用变量都已正确定义,以下程序段的输出结果 OK 】. 【 for(i=1;i<=5;i++); printf("OK\n"); 17、 设有以下程序段,执行程序后s的值是【 1 】. int x=0,s=0; while(!(x!=0)) s+=++x; printf("%d",s); 18、 设有以下程序段,执行程序后a的值是【 1 】. int x=0,a=0; while(!x!=0) a+=++x; printf("%d",a); break 19、 【 】语句强行结束循环,转向执行循 环语句的下一条语句.
17、 将以下语句用条件运算符改写为【max=a>b?a:b 】. if(a>b)max=a; else max=b; 18、 当a=3,b=2,c=1;时,执行以下程序段后,c的值为 【 2 】. if(a>b) a=b; if(b>c) b=c; else c=b; c=a; 19、 当a=3,b=2,c=1;时,执行以下程序段后,b的值为 【 1 】. if(a>b) a=b; if(b>c) b=c; else c=b; c=a;
C语言练习题一及答案

C语言练习题一一、填空题。
(每空1分,共10分)1.语句while(e==0):中的条件e==0等价于_____________;答案:!e2 printf(“%4s”,“beijing”);输出为:_____________;答案:beijing3.C语言中的字符串以字符_____________;答案:答案:\04.C语言可以处理的文件类型是_____________和_____________;答案:文本文件和二进制文件5,int(*P)[5];说明p是:_____________;答案:指向一维整形数组的指针变量6.函数直接或间接地调用自己,被称为函数的_____________;答案:递归7.若有static int x[5],x[4]的地址表示是:___________ 。
答案:&x[4]或x+48.有程序段如下:int x=l:while (x<=lO){x+=3;printf(“%d\n”,x);}则:函数printf()执行次数是____4_____ ,循环结束后X的值是___________ 。
答案:139.若有以下定义和语句,则sizeof(a)的值是_____,答案:12,而sizeof(b)的值是__。
答案:4 struct{int day;char month;int year;}a,*b;10.若有static char c[10] = “China”;执行该语句后c[1]= ___________ 。
答案:h c[5]= ___________ 。
答案:\0c[6]= ___________ 。
答案:\0 strlen(c)= ___________ 。
答案:511.若有Static char c[s]={’a’,’b’,’\0’(零),‘c’,‘d’};printf(“%s\n”,c):则输出内容为:___________ 。
答案:ab12.下面程序把从终端读人的10个整数以二进制方式写到一个名为bi.dat的新文件中。
c语言程序填空题

16功能:输入字符串,再输入一个字符,将字符串中与输入字符相
同的字符删除。
【1】a[i] != '\0'或a[i]或a[i]!=NULL【2】a[j]='\0'或a[j]=NULL或a[j]=0
【3】cc=getchar()或scanf("%c",&cc)【4】fun(a,cc)
12功能:删除字符串中的指定字符,字符串和要删除的字符均由键盘
输入。
【1】str【2】str[i]!='\0'或str[i]!=NULL或str[i]!=0或str[i]
【3】str[k]=str[i]或*(str+k)=*(str+i)或str[k]=*(str+i)或*(str+k)=str[i]
39功能:百马百担问题:有100匹马,驮100担货,大马驮三担,中
马驮2担,两匹小马驮一担,求大、中、小马各多少匹?
【1】3【2】2【3】hm【4】hl
40功能:找出数组中最大值和此元素的下标,数组元素的值由键盘
输入。
【1】a + i或&a[i]【2】p-a或-a+p【3】>【4】*s
41功能:输出两个整数中大的那个数,两个整数由键盘输入。
24功能:有n个整数,使其前面各数顺序向后移m个位置,最后m个数
变成最前面的m个数
【1】number,n,m【2】array,n,m【3】array+n-1或array + n -1【4】p-1或p -1
25功能:用冒泡法对数组a进行由小到大的排序。
C语言练习题1

一、填空共10题(共计20分)第1题(2.0分)定义int a[2][3];表示数组a中的元素个数是【1】个.第2题(2.0分)已知a=13,b=6, a/b的十进制数值为【1】.第3题(2.0分)已知a=13,b=6, !a的十进制数值为【1】.第4题(2.0分)函数调用时的实参和形参之间的数据是单向的【1】传递.第5题(2.0分)当a=3,b=2,c=1;时,执行以下程序段后 c=【1】.if(a>b) a=b;if(b>c) b=c;else c=b;c=a;第6题(2.0分)程序段int k=10; while(k=0) k=k-1;循环体语句执行【1】次.第7题(2.0分)已知a=13,b=6, a||b的十进制数值为【1】.第8题(2.0分)函数的定义不可以嵌套,但函数的调用【1】嵌套.第9题(2.0分)若有以下数组a,数组元素:a[0]~a[9],其值为9 4 12 8 2 10 7 5 1 3该数组中下标最大的元素的值是【1】.第10题(2.0分)函数调用语句func((e1,e2),(e3,e4,e5))中含有【1】个实参.二、判断共10题(共计10分)第1题(1.0分)标识符define是C语言中的关键字。
第2题(1.0分)假设有int a[10], *p;则p=&a[0]与p=a等价。
第3题(1.0分)x*=y+8 等价于 x=x*(y+8)。
第4题(1.0分)通过return语句,函数可以带回一个或一个以上的返回值。
第5题(1.0分)函数strlen("ASDFG\n")的值是7。
第6题(1.0分)有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 *(p+8).第7题(1.0分)C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。
第8题(1.0分)进行宏定义时,宏名必须使用大写字母表示。
c语言练习1

练习1一、选择题1、一个C程序是由(B)。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成2、一个C程序的执行是从( A )。
A.main函数开始,直到main函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main函数开始,直到最后一个函数结束3、C语言语句的结束符是(B)。
A.回车符B.分号C.句号D.逗号4、下面标识符中( D )不是C语言的关键字。
A.char B.goto C.case D.include5、以下说法正确的是(A)A.C程序的注释可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
B.C程序的注释只能是一行。
C.C程序的注释不能是中文文字信息。
D.C程序的注释中存在的错误会被编译器检查出来。
6、以下说法正确的是(D)A.C程序中的所有标识符都必须小写B.C程序中关键字必须小写,其他标识符不区分大小写C.C程序中所有标识符都不区分大小写D.C程序中关键字必须小写,其他标识符区分大小写。
7、设x、y均为float型变量,则以下不合法的赋值语句是(B)A.++x ; B.y=(x%2)/10 ; C.x*=y+8; D.x=y=0 ;解析:运算符%要求两端的操作数必须为整型,而在答案B中%号两端的操作数为x和2,x为实型,所以是错误的。
8、下列不正确的转义字符是(C)A.' \\ ' B.' \' ' C.' \19 ' D.' \0 '解析:转义字符是由单引号括起来的带反斜线的字符,这些字符具有特殊的含义,反斜线后可以是数字来代表某个字符,而这些数字只包括两种:八进制(1-3位)和十六进制(1-2位)。
十六进制前面要加x(或X),这里的C答案反斜线后是数字,但不是x开头,所以应该是八进制数,但是数值里有9,和八进制数不符,所以是错误的。
C语言练习题填空题1

{ float x,y;
scanf("%f",&x);
if(【】)
y=-1.0;
else if((【】)&&(x!=1))
y=2.0/(x-1.0);
else if(【】)
y=3.0/x;
else
y=4.0;
printf("%f/n",y); }
19.
以下函数的功能是将一个字符串S的内容颠倒过来。
}
printf(“\nsum的结果为:%f ”,sum);
}
22.
表达式4>3 && 7<5-!0的值为_______。
23.
char *p[10];这条语句的含义是:_________________________。
24.
假定x=10,则表达式x<=10?20:30的值为___________。
sum+=s[i];
if((i+1)%5==0)
{
w[k]=sum/5;
【2】;
k++;
}
}
}
main()
{
float s[SIZE],w[SIZE/5],sum;
int i,k;
fav1(s);
fav2(s,w);
}
4.
若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为:_____________。
24.20
试卷指标统计数据
总题量
总分值
24
100
章节编码
题量
分值
章节说明
01
C语言程序设计选择填空习题及答案

习题一一、选择题1.C程序的基本单位是(A)。
A.函数B.文件C.语句D.字符2.C程序中的变量(B)。
A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。
A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。
A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。
2.结构化程序由顺序、选择、循环三种基本结构构成。
3.一个C程序只有一个名为main的主函数。
4.C程序中的每个语句以分号结束。
5.C程序中,函数由函数首部和函数体组成。
6.每个基本结构有一个入口和一个出口,没有死循环和死语句。
7.算法是计算机解决问题所依据的步骤。
习题二一、选择题1.下列数据中属于字符串常量的是( B)。
A.ABC B."ABC" C.'abc' D.'A'2.在计算机内存中,'\n'占用的字节数是( C)。
A.4 B.3 C.1 D.23.字符串"ABC"在内存中占用的字节数是( D)。
A.6 B.8 C.3 D.44.在C语言中,合法的长整型常数是( B)。
A.568701400 B.0L C.0.03546287 D.2.654e115.char型常量在内存中存放的是( A)。
A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是( D)。
A.?bb B.a=8 C. b.βD.b_47.下列不正确的转义字符是( D)。
A.\\ B.\ 0 C.\" D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。
A.0 B.1 C.2 D.39.设a的值为5,执行下列语句后,b的值不为2的是( C)。
A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/210.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。
山东春季高考C语言练习题

C 语言程序设计1.程序填空题程序功能:定义函数 max(int a,int b),比较整数 a,b 的大小并输出较大值。
代码如下:#includeint max(int a,int b){if(【1】)return a;elsereturn 【2】;}void main(){int 【3】;printf("请输入 2 个整数:\n");scanf("%d%d", &a,&b);printf("较大值:%d \n", 【4】);}2.程序填空题代码如下:#include <stdio.h>main(){int age1, age2;printf("请输入小明和小红的年龄:");scanf("%d %d", 【1】, 【2】);if (【3】)printf("小明比小红大\n");else if (【4】)printf("小红比小明大\n");elseprintf(【5】);}3.程序填空题#include <stdio.h>main(){int num, n1, n2, n3;printf("请输入一个三位正整数:");scanf("%d", 【1】);n1 = 【2】;n2 = 【3】;n3 = 【4】;if (【5】 == num)printf("Y\n");elseprintf("N\n");}4.程序填空题程序功能:输入一个 1800~2800 之间的整数作为年份,判断该年份是否为闰年。
年份符合下列条件之一者为闰年:①能被 4 整除且不能被 100 整除;②能被 400 整除。
程序部分代码如下:#include <stdio.h>main(){int year,flag;printf("请输入年份:");【1】;【2】printf("年份超出范围。
c语言程序填空练习题

C 语言程序填空题1. 阅读以下程序并填空。
以下程序的功能是:输出三位正整数中能被13整除的数#include <stdio.h>main(){ int n; for( n=100 ; n<=999 ;n++) if(n%13!=0) continue ;else printf("%d\n",n);}2. 阅读以下程序并填空。
以下程序的功能是:输出100以内能被3整除且个位数为6的所有整数#include <stdio.h>main(){ int i,j; for(i=0; i<=9 ;i++) { j= i*10+6 ; if(j%3!=0) continue;else printf("%d\n",j);} }3. 阅读以下程序并填空。
以下的程序功能是:求101至999之间所有能被13整除的整数之和和个数#include <stdio.h>main(){ int i,cnt;float sum=0;i=101; cnt=0; while( i<=999 ){ if( i%13==0 ){ sum+=i; cnt++; }i++ ; }printf("sum=%f,cnt=%d\n",sum,cnt);}4. 阅读以下程序并填空。
该程序的功能是:用递归的方法求菲波那契数列2,2,4,6,10,16,26,42,68,110,……的第10项#include <stdio.h>long fib(int n){ if(n>= 3 )return fib(n-1)+fib(n-2) ;else return 2 ; }main(){ printf("%ld\n",fib(10)); }5. 阅读以下程序并填空。
该程序的功能是:用递归法求:n ++++ 321#include <stdio.h>long Sum(int n) { if(n> 1 )return n+Sum(n-1) ;else return 1 ;}6. 阅读以下程序并填空。
c语言程序填空含答案

c语言程序填空含答案在学习C语言的过程中,掌握程序填空的技巧是非常关键的。
程序填空题目可以帮助我们加深对C语言语法和逻辑的理解,并锻炼我们的编程思维能力。
在本文中,将为大家提供一些C语言程序填空题及其答案,希望对大家的学习有所帮助。
1. 下面是一个求最大公约数的C语言程序,请填写缺失的代码。
```c#include <stdio.h>int gcd(int a, int b) {if (b == 0) {return a;} else {return gcd(b, a % b);}}int main() {int num1, num2;printf("请输入两个正整数:");scanf("%d%d", &num1, &num2);printf("最大公约数为:%d", gcd(num1, num2)); return 0;}```答案:```c#include <stdio.h>int gcd(int a, int b) {if (b == 0) {return a;} else {return gcd(b, a % b);}}int main() {int num1, num2;printf("请输入两个正整数:");scanf("%d%d", &num1, &num2);printf("最大公约数为:%d", gcd(num1, num2));return 0;}```2. 下面是一个计算平均数的C语言程序,请填写缺失的代码。
```c#include <stdio.h>double average(int arr[], int length) {int sum = 0;for (int i = 0; i < length; i++) {sum += arr[i];}return sum / length;}int main() {int numbers[] = {5, 10, 15, 20, 25};int length = sizeof(numbers) / sizeof(numbers[0]);printf("平均数为:%.2f", average(numbers, length));return 0;}答案:```c#include <stdio.h>double average(int arr[], int length) {int sum = 0;for (int i = 0; i < length; i++) {sum += arr[i];}return (double)sum / length;}int main() {int numbers[] = {5, 10, 15, 20, 25};int length = sizeof(numbers) / sizeof(numbers[0]);printf("平均数为:%.2f", average(numbers, length));return 0;}```3. 下面是一个字符串反转的C语言程序,请填写缺失的代码。
c语言程序填空题库及详解答案

c语言程序填空题库及详解答案在C语言的学习过程中,程序填空题是一种常见的练习方式,它可以帮助学生加深对C语言语法和逻辑的理解。
下面是一个C语言程序填空题库的示例,包括题目和相应的详解答案。
题目一:计算圆的面积```c#include <stdio.h>#define PI 3.14159int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = PI * radius * radius;printf("圆的面积是:%.2f\n", area);return 0;}```题目二:判断闰年```c#include <stdio.h>int main() {int year;printf("请输入一个年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {printf("%d 是闰年。
\n", year);} else {printf("%d 不是闰年。
\n", year);}return 0;}```题目三:求最大公约数```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2)); return 0;}```题目四:字符串反转```c#include <stdio.h>#include <string.h>void reverse(char str[]) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);reverse(str);printf("反转后的字符串是:%s\n", str);return 0;}```题目五:计算阶乘```c#include <stdio.h>int factorial(int n) {if (n <= 1) {return 1;} else {return n * factorial(n - 1);}}int main() {int num;printf("请输入一个正整数:");scanf("%d", &num);printf("%d 的阶乘是:%d\n", num, factorial(num));return 0;}```以上题目涵盖了C语言中的一些基础概念,如循环、条件判断、函数定义和数组操作。
C语言考试填空题(全部答案)

计算机程序设计基础(C语言)程序填空练习题程序填空:阅读程序。
在划线处填写适当的表达式或语句,使程序完整并符合题目要求1.输入一个字符,判断该字符是数字、字母、空格还是其他字符。
main( ) 参考答案:{ char ch;ch=getchar();if( ) ch>='a'&&ch<='z'|| ch>='A'&&ch<='Z' printf("It is an English character\n");else if( ) ch>='0'&&ch<='9'printf("It is a digit character\n");else if( ) ch==' 'printf("It is a space character\n");elseprintf("It is other character\n"); }2.10个学生成绩按交换法排序。
main(){ float score[10], temp1;int i, j;printf("Please enter score:\n");for (i=0; i<10; i++)scanf("%f",&score[i]);for (i=0; i<9; i++)for (j=i+1; j<10; j++)if (score[j] > score[i]){ temp1=score[j];score[j]=score[i];score[i]=temp1;}printf("Sorted results:\n");for (i=0; i<10; i++)printf("%4.0f\n", score[i]); }11.排序函数:用交换法按成绩由高到低对学生成绩重新排序void Sort(float score[ ],int n){ int i, j;float temp1;for (i=0; i<n-1; i++){ for (j=i+1; j<n; j++)if ( ) score[j] > score[i]{ temp1 = score[j];; score[j]=score[i];score[i] = temp1;}}}自定义一函数求n!, 编写程序输入n,输出n!.#include<stdio.h>long jc(int n){ int i=1;long p=1;while (i <= n){ p=p*i;i++; }} return p;main(){ int n;printf("Please enter n:");scanf("%d", &n);printf("%d! = %ld\n", n, ); jc(n)}4.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。
C语言程序填空题及答案

程序填空题、1#include <stdio.h>void main()int n,k=0;{scanf(%d,&n);// 1)n 2) n!=0;while( _____1_____ ){k++;n=n/10_____2_____;}printf(%d\n,k);}2、#include <stdio.h>#include <math.h>#define f(x) x*x-5*x+sin(x)void main(){ int x; float max;// max=f(1);______1______for(x=2;x<=10;x++)if(f(i)>max) // max=f(i);______2______printf(%f\n,max);}、3#include <stdio.h>void main(){char c;c=getchar();// c>='a' && c<'v'if(______1______)c=c+5;elseif (c>='v' && c<='z')//c=c-21;______2______putchar(c);}、4.#include <stdio.h>void Dec2Bin(int m){int bin[32],j;for(j=0;m!=0;j++){// m%2bin[j]= ______1______;m=m/2;}for(;j!=0;j--)// bin[j-1]printf(%d, ______2______ );}void main(){int n;scanf(%d,&n);Dec2Bin(n);}5、#include <stdio.h>#include <math.h>void main(){int n,s=0;scanf(%d,&n);n=fabs(n);//n=(n>0?n:-n) 2) ;______ 1 ______while(n!=0) {// s=s+n_x0010_;______ 2 ______n=n/10;}printf(%d\n,s);}、6/#include <stdio.h>//int *pa , int *pb void swap(______1______)*/ 交换两个数的位置{ /*int temp;temp = *pa;*pa = *pb;*pb = temp;}void main(){int a,b,c,temp;scanf(%d%d%d,&a,&b,&c);if(a>b)swap(&a,&b);if(b>c)swap(&b,&c);// a>b if(______2______)swap(&a,&b);printf(%d,%d,%d,a,b,c);}7、#include <stdio.h>//long f(int n);_______1______void main(){printf(%ld\n,f(30));}long f(int n){// n==1||n==2 if( ______2______ )return 1;elsereturn f(n-1)+f(n-2);}8、#include <stdio.h>void main(){char s[80];int i,j;gets(s);// s[i]!='\0' for(i=j=0;______1______;i++)if(s[i] != 'c'){s[j]=s[i];//j++;______2______}s[j]='\0';puts(s);}、9#include <stdio.h>struct STUDENT{char name[16];int math;int english;int computer;int average;};*/ /* 计算平均成绩void GetAverage(struct STUDENT *pst){int sum=0;//sum+ pst->math+ pst->English+ pst->computer sum = ______1______;pst->average = sum/3;}void main(){int i;ike,80,80,90},eter,90,100,99}};for(i=0;i<4;i++){// &st[i]GetAverage(______2______);}printf(Name\tMath\tEnglish\tCompu\tAverage\n);for(i=0;i<4;i++){printf(%s\t%d\t%d\t%d\t%d\n,st[i].name,st[i].math,st[i].english,st[i].computer,st[i].average);}}10、#include <stdio.h>#include <math.h>long f(long n){ long m,y=0; m=fabs(n);while(m!=0) {y=y*10+m_x0010_;// m=m/10;____1____}if(n>=0) return y;//return ( -y);else _____2_____}void main(){printf(%ld\t,f(12345)); printf(%ld\n,f(-34567));}11、#include <stdio.h>float f(float,float*,int);void main(){ float b[5]={1.1,2.2,3.3,4.4,5.5};printf(%f\n,f(1.7,b,5));}// float x,float a[ ], int n float f( _______1________ ) { float y=a[0],t=1; int i;for(i=1;i<n;i++) { t=t*x; y=y+a[i]*t; }// return y_____2_____}、12#include <stdio.h>#include <string.h>#include <ctype.h>void f(char *s){ int i=0;while(s[i]!='\0'){strcpy// if(isdigit(s[i])) ____1____(s+i,s+i+1);//else___2___ i++;}}void main(){ char str[80];gets(str); f(str); puts(str);}13、#include <stdio.h>#include <ctype.h>void main(){ char a[80]; int n[3]={0},i; gets(a);//for(i=0;a[i]!='\0';i++)________1________{if (tolower(a[i])>='a' && tolower(a[i])<='z') /*统计字母个数*/n[0]++;// a[i]>='0' && a[i]<='9' *///*统计数字个数else if (________2________)n[1]++;elsen[2]++;}for(i=0;i<3;i++) printf(%d\n,n[i]);}14、#include <stdio.h>#include<math.h>void main(){int i,a,b,c;for(i=100;i<=999;i++){a=i/100;// b=i_x0010_0/10;_______1_______c=i_x0010_;//i==a*a*a+b*b*b+c*c*c if (________2________)printf(%d is a Armstrong number!\n,i);}}15、#include <stdio.h>void main(){int a[10],b[10],i;printf(\Input 10 numbers: );for (i=0; i<10;i++) /* 数组输入*/scanf(%d, &a[i]);for (i=1; i<10; i++)//a[i]+a[i-1]数组中的元素*/ b/* b[i]=______1______; 计算for (i=1; i<10; i++){printf(=,b[i]);//i%3==0*/ 个数据每行打印if (______2______) printf(\); /* 3 }}。
c语言程序填空题(1)

三、程序填空题导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。
这类习题的设计就是要引导读者逐步掌握编程的方法。
本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。
在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。
【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。
#include <stdio.h>main(){ int a,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);a= ①;b= ②;a= ③;printf("a=%d,b=%d\n",a,b);}页脚内容1【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。
#include <math.h>double pi(long n){ double s=0.0;long i;for(i=1;i<=n;i++)s=s+ ①;return( ② );}【3.3】下面的程序的功能是求一维数组中的最小元素。
findmin(int *s,int t,int *k){ int p;for(p=0,*k=p;p<t;p++)if(s[p]<s[*k])页脚内容2①;}main(){ int a[10],i,*k=&i;for(i=0;i<10;i++)scanf("%d",&a[i]);findmin(a,10,k);printf("%d,%d\n",*k,a[*k]);}【3.4】下面程序的功能是计算1-3+5-7+ …… -99+101的值。
C语言练习题1

一、填空题(20分,每空1分)1.一个完整的C程序有且仅有一个函数。
2.在内存中存储一个字符…a‟占用______个字节,而存储字符串”abcdef”则占用________个字节。
3.表达式4/5的值为________。
4.设int x=9,y=8,z=7,w; w=x>y>z; 则w的值为_________。
5.设x=4.5,a=7,y=3.4, 表达式x+a%3*(int)(x+y)%2/4的值为_____。
6.设a=14, 执行a+=a-=a*=a 后,a=___________。
7.设x=y=z=6, 执行x=(y>z)?x+2:x-2; 后,x=__________。
8.getchar( )函数用于输入, 而gets( )函数则用于输入______________。
9.设有定义语句:char ww[20]=” \t\\wab\n”; 则表达式:strlen(ww) 的值是__________。
10.设有定义语句:char str[7]=”abcdef”, 则数组元素str[2]中的字符是______,数组元素str[6]中的字符是__________。
11.函数中的形参和调用时的实参都是变量时,传递方式为________;都是数组名时,传递方式为_________。
12.设有char *p=”12345”, 则printf(“%s”,p)的输出是;而printf(“%c”,*p)的输出则是_________。
13.设有以下说明,则变量qq在内存中所占的字节数是________,如果将关键字struct 改为union 则变量qq所占的字节数为________。
struct student{ char name[10];int nl;float ave;} qq;14.巳知当前目录下有一个名为file.txt的文本文件,写出将该文件打开(只允许写)的语句:FILE *fP;。
c语言程序填空含答案

【程序填空】功能:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
len=length(str...);I.nt length ........(p)N.++..;P.++..;【程序改错】功能:将一个字符串中的大写字母转换成小写字母。
bool (char)......fun(char *c)fun= c;(return *c)..........puts(*p);(putchar(*p)).............【程序设计】功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。
------------------------------------------------*/ #include<stdio.h>void wwjt();void swap(int *a,int *b){/**********Program**********//********** End **********/ }main(){int x,y,z;scanf("%d%d%d",&x,&y,&z);if(x<y)swap(&x,&y);if(x<z)swap(&x,&z);if(y<z)swap(&y,&z);printf("%3d%3d%3d",x,y,z);wwjt();}void wwjt(){FILE *IN,*OUT;int m,n;int i[2];IN=fopen("in.dat","r");if(IN==NULL){printf("Read FILE Error"); }OUT=fopen("out.dat","w"); if(OUT==NULL){printf("Write FILE Error"); }for(n=0;n<3;n++){for(m=0;m<2;m++){fscanf(IN,"%d",&i[m]);}swap(&i[0],&i[1]);fprintf(OUT,"%d\n",i[0]);fprintf(OUT,"%d\n",i[1]);}fclose(IN);fclose(OUT);}/*-------------------------------------------------------【程序填空】功能:输入3个数a,b,c,按从小到大的顺序输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将下面的程序补充完整,以完成指定的功能。
1.输入10个整数,找出最大数。
#include <iostream>using namespace std;int main(){int k,x,max;cin>>x;max=______; // (1)for(k=2; k<=___ ; k++) { // (2)cin>>x;if (_______) max=x; // (3)}cout<<“Max=“<<max<<endl;return 0;}1.(1)x (2)10 (3)x>max2.猴子吃桃问题:猴子摘下若干个桃子,第一天吃了桃子的一半多一个,以后每天吃了前一天剩下的一半多一个,到第十天吃以前发现只剩下一个桃子,问猴子共摘了几个桃子?#include <iostream>using namespace std;int main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=2*(x2+1);_____________ ; // (1)_____________ ; // (2)}cout<<"Total="<<x1<<endl;return 0;}2.(1)x2=x1 (2)day—(或day=day-1)3.求符合下列条件的四位数中最大的一个数。
条件为:它的千位数字与十位数字之和等于百位数字与个位数字之积,例如,3136,3+3=1*6 ,故3136是符合条件的一个四位数。
#include <iostream>using namespace std;int main(){int i,a,b,c,d;for( i=9999; i>=1000; i--){a= _____________; // (1)b=(i-a*1000)/100;c=(i-a*1000-b*100)/10;d=i%10;if ( _____________ ) // (2){cout<<i<<endl;_____________; // (3)}}}3.(1)i/1000 (2)a+c==b*d (3)break4.求所有的水仙花数。
所谓水仙花数是指一个三位数的各位数字的立方和等于该数本身。
例如:13+53+33=153。
#include <iostream>using namespace std;int main(){int i,j,k;for (i=_____;i<=9;i++) // (1)for(j=_____;j<=9;j++) // (2)for (k=_____;k<=9;k++) // (3)if (i*i*i+j*j*j+k*k*k==i*100+_______________) // (4)cout<< i*i*i+j*j*j+k*k*k <<" ";cout<<endl;return 0;}4.(1)1 (2)0 (3)0 (4)j*10+k (或k*10+j)5.求所有的水仙花数。
所谓水仙花数是指一个三位数的各位数字的立方和等于该数本身。
例如:13+53+33=153。
#include <iostream>using namespace std;int main(){int i,x,y,z;for(i=100;i<=999;i++){x=i/100;____________; // (1)z=i%10;if (____________) // (2)cout<<i<<endl;}return 0;}5.(1)y=i/10%10 (2)x*x*x+y*y*y+z*z*z==i6.输出1000以内能被3整除且个位数为6的所有整数。
#include <iostream>using namespace std;int main(){int i, num;for (i=0;_________; i++) // (1){num=i*10+6;if (num %3!=0) ____________; // (2)cout<<num<<" ";}cout<<endl;return 0;}6.(1)i<100 (2)continue7.按从小到大的顺序输出用0至9之间的不同的数字组成的全部三位数(从102到987共648个)。
#include <iostream.h>int main(){int i,j,k,cnt=0;for(i=1;i<=9;i++)for(j=0;j<=9;j++)if(_____________) continue; // (1)elsefor(k=0;k<=9;k++)if(____________________) // (2){cout<<_______________ <<" "; // (3)cnt++;}cout<<endl<<cnt<<endl;return 0;}7.(1)j==i (2)k!=i && k!=j (3)100*i+10*j+k8.按从小到大的顺序输出用0至9之间的不同的数字组成的全部三位数(从102到987共648个)。
#include <iostream>using namespace std;int main(){int i,a,b,c,cnt=0;for(i=100;i<=999;i++){a=i/100;b=____________; // (1)c=____________; // (2)if (a==b || a==c || b==c)____________; // (3)cout<<i<<" ";cnt++;}cout<<endl<<cnt<<endl;return 0;}8.(1)i/10%10 (2)i%10 (3)continue9.将100元换成10元、5元和1元的组合,共有多少种组合方法。
#include <iostream>using namespace std;int main(){int i,j,k,count=0; // i是10元张数,j是5元张数,k是1元张数for(i=0; ___________; i++) // (1)for(j=0; ___________ ; j++) // (2){k= ___________ ; // (3)cout<<i<<'\t'<<j<<'\t'<<k<<endl;count++;}cout<<count<<endl;return 0;}9.(1)i<=10 (2)j<=(100-10*i)/5 (3)100-10*i-5*j10.用1元人民币兑换成1分、2分、5分,共有多少种不同的兑换方法。
#include <iostream>using namespace std;int main(){int five,two,count=0;for (five=0;five<=__________;five++) // (1)for (two=0; two<=__________;two++) // (2)count++;cout<< "共有" << count << " 种兑换方法" <<endl;return 0;}10.(1)20 (2)(100-five*5)/211.从键盘输入一个非负整数,将它反向显示出来。
例如,输入1234,输出4321。
#include <iostream>using namespace std;int main(){int number,digit;cin>>number;cout<< number <<" 的逆序数为";do {digit=_________________________; // (1)number=____________________________; // (2)cout<<digit;} while(______________________); // (3)cout<<endl;return 0;}11.(1)number%10 (2)number/10 (3)number>012.数根可以通过把一个数的各个位上的数字加起来得到。
如果得到的数是一位数,那么这个数就是数根。
如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。
如此进行下去,直到得到是一位数为止。
例如,24的数根是6,39的数根是3。
输入一个正整数,输出它的数根。
#include <iostream.h>#include <math.h>int main(){int n,m,t;cin>>n;t=n;while (__________) // (1){m=0;while (__________) // (2){m=m+t%10;t=t/10;}__________; // (3)}cout<<t<<endl;return 0;}12.(1)t>=10 (2)t!=0 或t (3)t=m13.输出2至99之间的所有质数(质数是只能被1和它本身整除的正整数)。
#include <iostream>#include<cmath>using namespace std;int main(){int i,n,temp;for(n=2; ___________; n++) { // (1)temp=sqrt(n);for(i=2; i<=temp; i++)if(n%i==0) ______________; // (2)if(i>temp) cout<<n<<" ";}cout<<endl;return 0;}13.(1)n<100 (2)break14.把从键盘上输入的一个大于等于3的整数分解为质因子的乘积。