C语言上机题库
C语言上机考试试题9

C 语言上机考试试题-9一、选择题(每小题2分)1. 用数组名作为函数的实参时,传递给函数的形参是________。
(A) 数组的首地址(B) 数组的第1个元素(C) 数组中的全部元素(D) 数组的元素个数2. 下列定义一维数组正确的写法是________。
(A) int a(10); (B) int n=10, a[n];(C) int n; (D) #define SIZE 10scanf(“%d”,&n); int a[SIZE];int a[n];3. 下述函数头定义形式正确的是________。
(A) int f(int x; int y) (B) int f(int x,y)(C) int f(int x, int y) (D) int f(x,y: int)4. 以“只读”方式打开文本文件c:\xy.txt,下列语句中哪一个是正确的________。
(A) fp=fopen("c:\\xy.txt","a"); (B) fp=fopen("c:\\xy.txt","r");(C) fp=fopen("c:\\xy.txt","wb"); (D) fp=fopen("c:\xy.txt","r");5. 判断变量x和y中有且只有一个值为0成立的表达式为________。
(A) !(x*y)&&x+y (B) (x*y)&&x+y(C) x*y==0 (D) x==0&&y!=06. 设有如下定义:struct ss{ char name[10];int age;char sex;} std[3],*p=std;下面各输入语句中错误的是________。
(A) scanf("%d",&(*p). age); (B) scanf("%s",&);(C) scanf("%c",&std[0].sex) (D) scanf("%c",&(p-> sex));7. 语句“int a=0; if(a=1) a+=10;” 编译不会出错,但运行后a的值是________。
C语言上机练习题及答案

C语言上机练习题及答案1输入三个整数x,y,z,把这三个数由小到大输出。
# includevoid main(){int x,y,z,a;scanf ("%d,%d,%d",&x,&y,&z);if(x>y) {a=x; x=y;y=a;}if(x>z) { a=x; x=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",x,y,z);}2输入圆的半径,输出圆的周长和面积。
# include# define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。
# includevoid main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。
# includeint main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。
C语言上机150道题

C语言上机150道题及参考答案1.某一门课程考试之后,需要统计考生(10人)的平均成绩,并找出其中的最高分和最低分。
2.从键盘输入两个正整数,输出这两个整数的商,要求商的小数点后保留5位。
例如输入355和113,输出3.14159。
3.用while循环结构编写程序打印ASCII码为33-127的字符。
4.用do-while,for循环结构编写程序打印ASCII码为33-127的字符。
5.用for循环结构编写程序打印ASCII码为33-127字符。
6.在1-500中,找出能同时满足用3除余2,用5除余3,用7除余4的所有整数,用循环结构。
7.输入一个整数将其倒着输出,如54321——12345。
8.计算s=1+1/3+1/5+…+1/n,截止到1/n<10-4。
9.从键盘输入一整数n,计算1*1+2*2+...+n*n的值。
10.用while 循环计算1+2+……+100的和。
11.用do while循环计算1+2+……+100的和。
12.用for 循环计算1+2+……+100的和。
13.输入一个小于等于10的整数n ,计算n!。
14.输入两个正整数m和n,计算m!+n!,m和n的值均小于10。
15.用循环语句,计算1~100之间的所有3的倍数之和。
16.用循环语句,计算100-200之间的所有7的倍数之和。
17.输出1-100之间,7的整数倍数或数字尾数为7的数字,统计出这些数字个数。
18.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
19.输入一个整数,统计它有几位数。
如输入367,则该数有3位数。
20.编写程序,输出1到50中间所有能被3整除的正整数。
21.把100~200之间不能被3整除的输出。
22.编程Y=1+3+5+7+...111。
23.编程y=1*1/2*1/3*1/4*1/5*1/6*...前十项之积。
24.编程输出九九乘法表。
25.求1到100奇数和。
大学c语言上机考试编程题库

1、输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。
然后输出最后得到的字符。
#include<stdio.h>int main(){char c1;printf("input a latter:\n");scanf("%c",&c1);if(c1>='A'&&c1<='Z')c1=c1+32;printf("%c",c1);return 0;}2、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#include<stdio.h>int main(){char c;int letters=0,space=0,digit=0,other=0;printf("Please input letters:\n");while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z')letters++;else if(c>='0'&&c<='9')digit++;else if(c==' ')space++;elseother++;}printf("字母数:%d\n数字数:%d\n空格数:%d\n其他字母数:%d\n",letters,digit,space,other);return 0;}3、编写一个函数,求数列1+1/2+1/3+1/4+1/5+...1/n,利用主函数调用这个函数并输出结果。
#include<stdio.h>int main(){int n;float c;float sum(int n);scanf("%d",&n);c=sum(n);printf("%f\n",c);float sum(int n){int i;float sum=0.0;for(i=1;i<=n;i++)sum=sum+1.0/i;return sum;}4、输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。
c语言上机考试题库

c语言上机考试题库单项选择题1.有char c=’1’,下面说法中正确的是()。
A. 语句putc+2);的输入结果为51B. 语句put“%d”,c+2);的输出结果为3C. 语句put“%c”,c+2);的输入结果为51D. 语句put“%c”,c+2);的输出结果为32.设c1,c2均就是char型变量,则下面不恰当的函数调用为()。
A. scanf(”c1=2=%c”,&c1,&c2);B. get);C. putc2);D. putc1,c2);3.为了表示关系x>=y>=z,下面C语言表达式中正确的是()。
A. (x>=y)&&(y>=z)B. (x>=y)and(y>=z)C. (x>=y>=z)D. (x>=y)&(y>=z)4.设x,y,z,t为int型变量,则继续执行以下语句后,t的值()。
x=y=z=1;t=++x||++y&&++z;A. 不定值B. 2C. 1D. 05.对if语句中表达式的类型,下面正确的说法是()。
A. 必须就是关系表达式B. 必须是关系表达式或逻辑表达式C. 可以就是任一表达式D. 必须是关系表达式或算术表达式6.对for(表达式1;;表达式3)可以认知为()。
A. for(表达式1;0;表达式3)B. for(表达式1;表达式1;表达式3)C. for(表达式1;1;表达式3)D. for(表达式1;表达式3;表达式3)7.执行语句for(i=1;i++<4;);之后,变量i的值为()。
A. 3B. 4C. 5D. 不确定8.若二维数组a存有m列,则在a[i][j]前的元素个数为()。
A. j*m+iB. i*m+jC. i*m+j-iD. i*m+j+19.下面说法中正确的是()。
A. 在C语言中,可以采用动态内存分配技术,定义元素个数气门的数组B. 在C语言中,数组元素的个数可以不确定,允许随即变动C. 在C语言中,数组元素的数据类型可以不一致D. 在C语言中,定义数组后,就确定了它能容纳的相同数据类型元素的个数10.无法把字符串:“good!”参数值数组b的语句就是()。
C语言上机试题

1: 第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
5: 第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。
.6: 第6题请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。
其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。
7: 第7题请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。
8: 第8题编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。
S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n)9: 第9题编写一个函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。
M与n为两个正整数,且要求m>n。
p=m!/n!(m-n)!10: 第10题编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。
C语言上机试题库

C上机试题库一、2002年4月/*程序修改题1给定程序MODI1.C中函数fun的功能是: 先从键盘上输入一个3行3列矩阵的各个元素的值, 然后输出主对角线元素之和。
请改正函数fun 中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。
注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!*/#includeint fun(){int a[3][3],sum;int i,j;/*********found**********/sum=0;//______;for (i=0; i < 3; i++){ for (j=0; j < 3; j++)/*********found**********/scanf("%d",&a[ i ][ j ]);//scanf("%d",a[ i ][ j ]);}for (i=0; i < 3; i++)sum=sum+a[ i ][ i ];printf("Sum=%d\n",sum);}main(){fun();}/*编程题编写程序, 实现矩阵(3行3列)的转置(即行列互换)例如, 输入下面的矩阵:100 200 300400 500 600700 800 900程序输出:100 400 700200 500 800300 600 900注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun 的花括号中填入你编写的若干语句。
*/#include#includeint fun(int array[3][3]){//int i,j,t;for(i=0; i < 3; i++)for(j=0; j < i; j++){ t=array[i][j];array[i][j]=array[j][i];array[j][i]=t; }//}main(){int i,j;int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};clrscr() ;for (i=0; i < 3; i++){ for (j=0; j < 3; j++)printf("%7d",array[i][j]);printf("\n");}fun(array);printf("Converted array:\n");for (i=0; i < 3; i++){ for (j=0; j < 3; j++)printf("%7d",array[i][j]);printf("\n");}NONO();}NONO(){/* 请在此函数内打开文件,输入测试数据,调用fun 函数,输出数据,关闭文件。
C语言上机考试试题6

{ int i; float sum=0; max=a[0]; min=a[0]; for(i=1;i<n;i++) { if (a[i]>max) max = a[i]; else min = a[i]; /*$1*/ sum = sum + a[i]; } return(sum/n); } int main() { float score[10],ave; int j; for(j=0;j<10;j++) scanf("%f", &score[j]); ave = average(score,10); printf("max=%6.2f min=%6.2f average=%6.2f\n",max,min,ave); } 操作说明: 在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语 句else有错误,请改正(注意:不得加行、减行、加句、减句,否则后 果自负)。该程序功能:求出n个数中的最大数、最小数和平均数。例 如:在程序中输入:1 2 3 4 5 6 7 8 9 10 结果:max=10.00 min= 1.00 average=5.40。 答案:if (a[i]<min) min = a[i]; 运行样例2行 运行样例1: 1 2 3 4 5 6 7 8 9 10 结果:max=10.00 min= 1.00 average=5.40 3. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位 数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的 三次方+5的三次方+3的三次方。 #include <stdio.h> void main() { int i,j,k,n; printf("water flowernumber is:"); for(n=100;n<1000;n++)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言习题集3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。
输入格式:B输出格式:26#include<stdio.h>int main(void){char ch;int sum;ch=getchar();sum=ch-'A'+10+15;printf("%d\n",sum);return 0;}3.12输入三个整数,求其平均值。
输入格式:3 5 7输出格式:5#include <stdio.h>int main(void){int a,b,c,aver;scanf("%d %d %d",&a,&b,&c);aver=(a+b+c)/3;printf("%d\n",aver);return 0;}3.13根据c=5/9*(f-32) 公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。
输入格式:80.0输出格式:26.67#include<stdio.h>int main(void){float f,c;scanf("%f",&f);c=5.0/9*(f-32);printf("%.2f\n",c);return 0;}3.14输入一个四位正整数,求其各位数字之和。
例如,1357的各位数字之和为1 + 3 + 5 + 7 = 16。
输入格式:1357输出格式:16#include<stdio.h>int main(void){int num;int a,b,c,d,total;scanf("%d",&num);a=num/1000;b=(num-a*1000)/100;c=(num-a*1000-b*100)/10;d=num-a*1000-b*100-c*10;total=a+b+c+d;printf("%d\n",total);return 0;}3.15输入一大写字母,输出对应的小写字母。
输入格式:A输出格式:a#include<stdio.h>int main(void){char c1,c2;scanf("%c",&c1);c2=c1+32;printf("%c",c2);}3.16输入两个整数分别赋值给变量a和b,将a和b 的值互换,输出a、b的值。
输入格式:3 5输出格式:5 3#include <stdio.h>int main(void){int a,b,temp;scanf("%d%d",&a,&b);temp=a;a=b;b=temp;printf("%d %d",a,b);return 0;}3.21输入一小写字母,输出对应的大写字母。
输入格式:b输出格式:B#include<stdio.h>int main(void){char ch;ch=getchar();putchar(ch-32);putchar('\n');}3.22输入任意四位整数,以反序的方式输出该整数。
例如:输入1234,输出4321输入格式:1357输出格式:7531#include<stdio.h>int main(void){char c1,c2,c3,c4;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);printf("%c%c%c%c\n",c4,c3,c2,c1);}3.23输入两个电阻值,求它们并联和串联的电阻值,结果保留两位小数。
并联和串联的电阻值的计算公式为:并联电阻:PR=(R1*R2)/(R1+R2) 串联电阻:RS=R1+R2输入格式:3 5输出格式:1.88 8.00#include <stdio.h>int main(void){double r1, r2, pr, rs;scanf("%lf%lf", &r1, &r2);pr =(r1 * r2)/ (r1 + r2) ;rs = r1 + r2;printf("%.2f %.2f\n", pr, rs);return 0;}3.24使用getchar函数分别输入两个字符变量c1和c2,要求c1、c2均是字符'0'到'9'中的一个字符。
将c1、c2中的值转换成相应的数字,如将字符'1'转换为数字1,并输出这两个数相加的结果。
输入格式:26输出格式:8#include<stdio.h>int main(void){char c1,c2;c1=getchar();c2=getchar();c1=c1-48;c2=c2-48;printf("%d\n",c1+c2);return 0;}3.25输入梯形的上下底边长度和高,计算梯形的面积,保留一位小数。
计算梯形面积的公式如下:S=h*(a+b)/2输入格式:3 5 4输出格式:16.0#include<stdio.h>int main(void){int a,b,h;float S;scanf("%d%d%d",&a,&b,&h);S=h*(a+b)/2.0;printf("%.1f",S);return 0;}3.26输入圆的半径,求圆的周长和面积,结果精确到小数点后两位。
已知圆周率为3.14159。
输入格式:5.0输出格式:31.42 78.54#include <stdio.h>void main(){ double r,l,s;scanf("%lf",&r);l=2*3.14159*r;s=3.14159*r*r;printf("%.2f %.2f\n",l,s);}4.1输入整数a和b,如果a^2 + b^2 大于100,则输出a + b的值;否则,输出a - b的值。
输入格式:3 5输出格式:-2#include<stdio.h>void main(){int a,b;scanf("%d%d",&a,&b);if (a*a+b*b>100)printf("%d\n",a+b);elseprintf("%d\n",a-b);}4.2输入整数n,如果n既是5的整倍数又是7的整倍数,则输出yes;否则输出no。
输入格式:35输出格式:Yes#include <stdio.h>void main(){int n;scanf("%d",&n);if(n%5 == 0 && n%7 == 0)printf("yes\n");elseprintf("no\n");}4.3商场为促销实行打折销售商品,假定商品价格为p元,编程计算某顾客购买x件商品的应付金额,保留一位小数。
先输入价格p,再输入购买的件数x。
计算公式sum = p * x * (1 - d) 其中,sum为应付金额,d为折扣(x<5时:d=0;5<=x<10时:d=1%;10<=x<21时:d=2%;21<=x<30时:d=4%;30<=x时:d=6%;)。
输入格式:9.9 15输出格式:145.5#include<stdio.h>void main(){int x;float p,sum,d;scanf ("%f%d",&p,&x);if(x<5)d=0;else if(x<10)d=0.01;else if(x<21)d=0.02;else if(x<30)d=0.04;else d=0.06;sum=p*x*(1-d);printf("%.1f",sum);}4.4输入'0'~'9'或'a'~'f'或'A'~'F'中的一个字符,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。
输入格式:6输出格式:21#include<stdio.h>void main(){char ch;ch=getchar();if(ch>='0'&&ch<='9')printf("%d\n",ch-'0'+15);else if(ch>='A'&&ch<='F')printf("%d\n",ch-'A'+10+15);else if(ch>='a'&&ch<='f')printf("%d\n",ch-'a'+10+15);elseprintf("Iaput Error!!\n");}4.5已知一张如下所示的时间表:***************Time***************1 morning2 afternoon3 night**********************************Please input your choice:根据输入的序号显示相应的问候信息:输入1时,输出Good morning;输入2时,输出Good afternoon;输入3时,输出Good night;对于其他的输入,则输出error。
输入格式:2输出格式:Good afternoon#include<stdio.h>int main(void){int choice;scanf("%d",&choice);switch(choice){case 1:printf("Good morning\n");break;case 2:printf("Good afternoon\n");break;case 3:printf("Good night\n");break;default:printf("error\n");}}4.6输入3个整数,要求按从小到大的顺序输出。