c语言上机试题8
C语言上机100题
![C语言上机100题](https://img.taocdn.com/s3/m/7239faefdd3383c4bb4cd298.png)
1: 第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
答案:void fun(char *tt, int pp[]){int i;for (i=0;i<26;i++)pp[i]=0;while (*tt){switch (*tt){case ‘a’: pp[0]++;break;case ‘b’: pp[1]++;break;case ‘c’: pp[2]++;break;case ‘d’: pp[3]++;break;case ‘e’: pp[4]++;break;case ‘f’: pp[5]++;break;case ‘g’: pp[6]++;break;case ‘h’: pp[7]++;break;case ‘i’: pp[8]++;break;case ‘j’: pp[9]++;break;case ‘k’: pp[10]++;break;case ‘l’: pp[11]++;break;case ‘m’: pp[12]++;break;case ‘n’: pp[12]++;break;case ‘o’: pp[14]++;break;case ‘p’: pp[15]++;break;case ‘q’: pp[16]++;break;case ‘r’: pp[17]++;break;case ‘s’: pp[18]++;break;case ‘t’: pp[19]++;break;case ‘u’: pp[20]++;break;case ‘v’: pp[21]++;break;case ‘w’: pp[22]++;break;case ‘x’: pp[23]++;break;case ‘y’: pp[24]++;break;case ‘z’: pp[25]++;break;}tt++;}}5: 第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。
C语言上机考试题目
![C语言上机考试题目](https://img.taocdn.com/s3/m/8d88136b7fd5360cba1adb41.png)
1、编写一个C 程序,比较任意三个整数的大小,然后输出其中的最大值。
方法不限。
2、计算圆的面积和周长。
要求:使用符号常量定义圆周率为3.14。
3、输入某学生三个科目的期末考试成绩,计算出该学生的成绩总分和平均分。
要求:有输入数据和输出结果的提示。
4、输入三角形的三边长,求三角形的面积。
三角形的三边长用变量a,b,c, 其中s=(a+b+c)/2。
提示:求某个数x 的平方根函数为sqrt(x),当直接用此函数时,需要在main 函数上面加入头文件:math.h 。
5、输入一个四位的正整数(如果不是,提示“输入错误”),对其个、十、百、千位四位数字求和并实现个位数与百位数、十位数与千位数的互换然后将这个数输出。
例如,输入一个四位正整数1234,通过你的程序,如何输出和10以及新的数3412。
6、求ax 2+b x+c=0方程的根。
a ,b ,c 由键盘输入。
提示:众所周知,一元二次方程式的根为:x1= x2= 可以将上面的分式分为两项:p= ,q= x1=p+q, x2=p -q 。
注意:在b 2-4ac>0的条件下,才可以求方程的根,否则提示a,b,c 的值输入错误。
7、输入三角形的三条边长,判断能否构成三角形,若能输出YES 并且输出三角形的面积,若不能则输出NO 。
8、任意输入三个整型数,要求按照从大到小的顺序输出。
9、从键盘输入一个四位数的年份,判断其是否为闰年。
aac b b 242-+-a ac b b 242---a b 2-aac b 242-10、有一个函数:写出程序,输入x的值,输出对应的y的值。
要求加上相应的文字说明。
11、编程实现大小字母的转换。
从键盘输入一个字符,要求使用getchar()函数读入字符。
如果输入的是一个小写字母,转换为大写字母;如果输入的是一个大写字吗,转换为小写字母;如果输入的是一个非字母符号,照原样输出。
要求有文字说明。
12、判断从键盘输入的是数字字符、大写字母、小写字母、空格还是其他字符。
C语言程序设计上机考试试题和参考答案
![C语言程序设计上机考试试题和参考答案](https://img.taocdn.com/s3/m/fff25f483169a4517623a314.png)
printf("Input str1:\n"); gets(str1); //1
printf("Input m and n:\n"); scanf("%d%d", &m, &n); //1
mystrcpy(str1, str2, m, n); //2 puts(str2); }
1、请按行读入数据 2、请按给定的函数原型编写程序,否则即使程序运行结果正确,也不给分。 参考答案
#include<stdio.h>
void Input(int a[][10], int n);
int Compute(int a[][10], int n);
main()
{
int n, a[10][10]; int sum;
//2
{
int i, flag = 0, sum = 0; //1
for (i = 1; i <= n / 2; i++) //1
{
if (n % i == 0)
//1
{
sum = sum + i; //1
}
}
if (sum == n)
//1
{
flag = 1;
}
return flag;
//1
} 3.(15 分)请按给定要求编程计算方阵的主对角线之和。其中方阵的输入请在 Input 函数实现,计算主对角之和请在 Compute 函数实现,计算结果请在主函数打印, 且给定的方阵最大为 10x10,方阵实际大小请在主函数读入。Input 函数和 Compute 函数的函数原型如下:
C语言习题(8-9)
![C语言习题(8-9)](https://img.taocdn.com/s3/m/2db07e06de80d4d8d15a4fe0.png)
C语言习题(8-9)一.填空题1.C语言中,将一个变量的地址称为______________,存放变量地址的变量称为______________。
2.设int a[10]={1,2,3}; 则*(a+3)的值是________________。
3.若使表达式p=”jiangsu”无任何错误(包括语法错误和警告),则p的定义语句为_____________。
4.若有下列定义和语句:int a[4]={0,1,2,3}, *p; p=&a[2];则*--p的值是_____________。
5.执行下列程序段后,变量a的值为_____________。
int *p,a,b=1; p=&a; *p=10; a=*p+b;6.设一个C程序中有如下定义:char line[]=”china”;char *ptr=line;则ptr中为_____________的地址,line[5]中为_____________,*(ptr+2)的值为_____________。
7.假定int型指针p所指对象的值为25,p+1所指对象的值为46,则执行”(*p)++;”语句后,p所指对象的值为_____________。
8.若要使指针p指向一个double型的动态存储单元,请在空白处填上适当的内容:p=____________malloc(sizeof(double));9.若有定义:int (*p)[4];则标识符p是_____________________________________________________。
10.struct student{ int num;char name[20];float score;}stu[3], *p; p=stu;写出通过p访问stu[0]中score成员的两种表达式___________________________________________。
二.选择题1.已有定义int k=2,*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是_____________。
C语言上机试题
![C语言上机试题](https://img.taocdn.com/s3/m/8e2ed87627284b73f2425016.png)
B:1992
C:1996
D:2000
答案:A
〖第11题〗『单项选择』(1分)(题号:172)
在C语言程序中()。
A:函数的定义可以嵌套,但函数的调用不可以嵌套
B:函数的定义不可以嵌套,但函数的调用可以嵌套
C:函数的定义和函数调用均可以嵌套
D:函数的定义和函数调用不可以嵌套
题目:给一个不多于5位的正整数,要求:一、求它是
几位数,二、逆序打印出各位数字。
--------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序
的结构。
------------------------------------------------------*/
/***********SPACE***********/
printf("max value is %d\n",【?】);
}
max_value(m,n,array)
/***********SPACE***********/
int m,n,【?】;
{int i,j,max;
max=array[0][0];
题目:求出二维数组中的最大元素值。
-------------------------------------------------------*/
#include "stdio.h"
void main()
{int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
C语言上机考试系统试题及答案(上机系统部分)
![C语言上机考试系统试题及答案(上机系统部分)](https://img.taocdn.com/s3/m/571b66838762caaedd33d49c.png)
例如,输入下面矩阵:
1 2 3
4 5 6
7 8 9
其转置矩阵为:
1 4 7
2 5 8
3 6 9
则程序输出:
2 6 10
6 10 14
10 14 18
注意:部分源程序已给出,并保存在考生文件夹下的 prog1.c 文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语
句,并将横线去掉。
#include <stdio.h>
#include<conio.h>
void fun (int a[3][3], int b[3][3])
{
int i,j;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%7d",t[i][j]);
printf("\n");
}
}【参考答案】
程序填空题:第9行 bb[i]=0 第24行 bb[5]++ 第26行 p++;【 ++p; p=p+1; p+=1; 】
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 ");
C语言上机测试题目(完整版)
![C语言上机测试题目(完整版)](https://img.taocdn.com/s3/m/5db1808671fe910ef12df8db.png)
1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h>void main(){int i,j,k;for(i=1;i<=4;i++)for(j=1;j<=4;j++)for(k=1;k<=4;k++)if(i!=j&&i!=k&&j!=k)printf("%d%d%d ",i,j,k);printf("\n");}2.企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?#include <stdio.h>main(){ long i;float bonus, bon1, bon2, bon4, bon6, bon10;int c;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;printf("请输入利润i:");scanf("%ld",&i);c=i/100000;if(c>10) c=10;switch(c){ case 0: bonus=1*0.1;break;case 1: bonus=bon1+(i-100000)*0.075;break;case 2 :case 3: bonus=bon2+(i-200000)*0.05; break;case 4:case 5: bonus=bon4+(i-400000)*0.03;break;case 6:case 7:case 8:case 9: bonus=bon6+(i-600000)*0.015;break;case 10: bonus=bon10+(i-1000000)*0.01;}printf("奖金是%10.2f",bonus);}3.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#include<stdio.h>#include<math.h>void main(){int a,b,c;for(a=0;;a++){ b=sqrt(a+100);c=sqrt(a+268);if(b*b==a+100 && c*c==a+268){printf("%d\n",a);break;}}}4.输入某年某月某日,判断这一天是这一年的第几天?main(){int day,month,year,sum,leap;printf("\nplease input year,month,day\n");scanf("%d,%d,%d",&year,&month,&day);switch(month)/*先计算某月以前月份的总天数*/case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf("data error");break;}sum=sum+day; /*再加上某天的天数*/if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ leap=1;elseleap=0;if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum++;printf("It is the %dth day.",sum);}5.输入三个整数x,y,z,请把这三个数由小到大输出。
c语言练习用上机试题答案
![c语言练习用上机试题答案](https://img.taocdn.com/s3/m/81c4d94301f69e31433294f0.png)
int s=0,i;
for(i=2;i<=n-1;i++)
if(n%i==0) s+=i;
return s;
※号(9套)
填空 [N] t[i][j] t[j][i]
改错 #define FU(m,n) ((m)/(n))return(value);
将字符串中的前导*号全部删除,中间和尾部的*号不删除。
int i,j,s=0;
for(j=0;j<N;j++) s+=a[0][j]+a[M-1][j];
for(i=1;i<=M-2;i++) s+=a[i][0]+a[i][N-1];
return s;
素数(5套)
填空 i t++ count
改错intfun(int a,int b,int c)
elsereturn1;
N名学生的成绩已放入一个带头节点的链表结构中,h指向链表的头结点,找出学生的最高分。
double max=h->s;
for(h=h->next;h->next!=NULL;h=h->next)
if(h->s>max) max=h->s;
return max;
填空 0.0 x[i]/N j++
改错doublefun(int m) for(i=100;i<=m;i+=100)
ss[i]='\0';
填空 0 || 1
改错t-=1.0/i;return t;
删除字符串中的所有空格。
int i=0;char *p=str;
C语言1-15套上机题
![C语言1-15套上机题](https://img.taocdn.com/s3/m/68e9a08fcc22bcd126ff0c06.png)
第1套上机考试试题1. 填空题1.下列给定程序中,函数fun()的作用是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。
例如,若输入“Ab,cD”,则输出“ab,cd”。
#include <stdio.h>#include <string.h>#include <conio.h>char 1 fun(char tt[]){int i;for(i=0;tt[i];i++){if((tt[i]>='A')&&(tt[i]<= 2 )) tt[i]+=32;}return(tt);}main(){char tt[81];printf("\nPlease enter a string: ");gets(tt);printf("\nThe result string is:\n%s",fun( 3 ));}2.函数fun()的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
#include<conio.h>#include<stdio.h>#include<string.h>void fun(char *ss){int i;for(i=0;ss[i]!='\0';i++)if(i%2==1&&ss[i]>='a'&&ss[i]<='z')1}main(){2 *wf;char tt[81],s[10]="abc4Efg" 3printf("\nPlease enter an string within 80 characters:\n");gets(tt);printf("\n\nAfter changing, the string\n%s",tt);fun(tt);printf("\nbecomes\n%s\n",tt);wf=fopen("out.dat","w");fun(s);fprintf(wf,"%s",s);fclose(wf);}例如,若输入abc4Efg,则应输出aBc4EFg。
c语言上机选择题题及标准答案
![c语言上机选择题题及标准答案](https://img.taocdn.com/s3/m/07a7c3652f60ddccdb38a038.png)
c语言上机选择题题及答案————————————————————————————————作者:————————————————————————————————日期:21、下列字符序列中,不可用作C语言标识符的是(c)A.abc123 B.no_1 C.a!b D._ok_02、正确的C语言标识符是(a)A._buy_2 B.2_buy C.?_buy D.buy?3、不属于C语言关键字的是(D)A.int B.break C.while D.character4、以下选项中,合法的C语言标识符是(A)A.mon B.2_abc C.3dmax D.A.dat5、以下选项中,合法的实型常数是(C)A.5E2.0 B.E-3 C.2E02 D.1.3E6、以下选项中,正确的字符常量是(C)A."F" B.'\\'' C.'W' D.'''7、已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S='A'+'6'-'3';后,S中的值为(A)A.'D' B.68 C.不确定的值D.'C'8、在C语言中,要求运算数必须是整型的运算符是(D)A./ B.++ C.*= D.%9、若有定义:int m=7; float x=2.5, y=4.7;则表达式x+m%3*(int)(x+y)%2/4的值是(A) A.2.500000 B.2.750000 C.3.500000 D.0.00000010、设变量x为float类型,m为int类型,则以下能实现将x中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是(B)A.x=(x*100+0.05)/100.0 B.m=x*100+0.5, x=m/100.0C.x=x*100+0.5/100.0 D.x=(x/100+0.5)*100.011、假设所有变量均为整型,则表达式(x=2, y=5, y++, x+y)的值是(B)A.7 B.8 C.6 D.212、已知s是字符型变量,下面不正确的赋值语句是(B)A.s='\012'; B.s= 'u+v';C.s='1'+'2'; D.s=1+2;13、设x、y均为float型变量,则不正确的赋值语句是(C)A.++x ; B.x*=y-2;C.y=(x%3)/10; D.x=y=0;14、putchar函数可以向终端输出一个(D)A.整型变量表达式值。
大一c语言上机考试题及答案
![大一c语言上机考试题及答案](https://img.taocdn.com/s3/m/98b43d6d77c66137ee06eff9aef8941ea76e4bf8.png)
大一c语言上机考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. variable-2答案:C2. C语言中,哪个关键字用于声明一个函数?A. defineB. functionC. defD. void答案:D3. C语言中,哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列哪个选项是C语言中正确的字符串定义?A. char str[] = "Moonshot";B. char str[] = {"Moonshot"};C. char str[] = 'Moonshot';D. char str[] = "Moonshot'';答案:A5. 在C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. ==D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:int _______;。
答案:变量名2. 在C语言中,使用________运算符可以将字符串连接起来。
答案:+3. C语言中,________关键字用于定义一个结构体。
答案:struct4. 使用________函数可以输出格式化的字符串。
答案:printf5. C语言中,________函数用于计算字符串的长度。
答案:strlen三、编程题(每题10分,共60分)1. 编写一个C语言程序,计算并输出100以内所有奇数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i < 100; i += 2) {sum += i;}printf("Sum of odd numbers from 1 to 99 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现字符串反转。
C语言上机试题1-20套
![C语言上机试题1-20套](https://img.taocdn.com/s3/m/54289112f18583d049645927.png)
C 语言上机考试题(第一套)1.编写函数fun ,它的功能是:计算并输出下列级数和:)1(1321211+⨯++⨯+⨯=n n S例如,当n = 10时,函数值为:0.909091注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
试题程序:#include <conio.h>#include <stdio.h>double fun( int n ){float…………}main() /*主函数 */{ clrscr();printf(″%f\n ″, fun(10));}解答:#include <conio.h> #include <stdio.h> double fun( int n ) { double s=0; int i; for(i=1;i<n+1;i++) s+=1.0/(i*(i+1)); return s; } main() /*主函数 */ { system("cls"); printf("%f\n",fun(10)); }说明:主函数中的clrscr()函数为TC 下使用的清屏函数,在VC 中不能使用,在本题中可以直接删除或改为system("cls")2.在[10000, 20000]范围内考察个位数字是7的素数, 问:(1) 这样的素数有多少个?(2) 其中最大的一个等于几?解答:#include <stdio.h>int main(void){int max,num=0;int i,j;for(i=10000;i<20001;i++){for(j=2;j<i;j++)if( i%j==0 )break;if( j==i && i%10==7){num++;max=i;}}printf("num=%d,max=%d\n",num,max);return 0;}3. 编写程序,从键盘输入一年份,判断该年份是否为闰年。
C语言程序设计上机习题与参考答案
![C语言程序设计上机习题与参考答案](https://img.taocdn.com/s3/m/0aaa6fd132d4b14e852458fb770bf78a65293a77.png)
C语言程序设计上机习题1、给出三角形的三边a、b、c,求三角形的面积〔应先判断a、b、c三边是否能构成一个三角形〕.2、某幼儿园只收2~6岁的小孩,2~3岁编入小班,4岁编入中班,5~6岁编入大班,编制程序实现每输入一个年龄,输出该编入什么班.3、编写程序,输入一个整数,判断它能否被3、5、7整除,并根据情况输出下列信息:〔1〕能同时被3、5、7整;〔2〕能同时被3、5、7中的两个数整除,并输出这两个数;〔3〕只能被3、5、7中的一个数整除;〔4〕不能被3、5、7中的任何一个数整除.4、请列出所有的个位数是6,且能被3整除的两位数.5、求1~500中能被5整除的数的倒数之和.6、编写程序,输入某门功课的若干个同学的成绩,以-1作为终值,计算平均成绩并输出.7、若口袋里放入12个球,3个红球,3个白的,6个黑的,从中任取8个,编写程序,列出所有可能的取法.8、编写一个程序,求2012!的末尾有多少个0?9、一个自然数平方的末几位与该数相同时,称该数为同构数.例如:252=625,则25为同构数.编程求出1~1000中的同构数.10、输入一个较大的整数,求小于该整数的最大5个素数.11、求下列数列的近似值:S=1-1/22+1/33-1/44+…〔-1〕n/n n.输入精度,当某一项的精度小于该值时停止计算.float fun<float esp>{ }void main<>{float esp;scanf<"%f",&esp>;printf<"%f\n",fun<esp>>;}12、编写一个函数change<int x,int r>,将十进制整数x转换成r<1<r<10>进制后输出.13、求1000以内的亲密数对.亲密数对的定义为:若整数a 的所有因子〔不包括本身〕之和为b,b的所有因子〔不包括b本身〕之和为a,且a和b不相等,则称a与b为亲密数对.int fun<int x>{ }void main<>{int n,a,b;for<n=1;n<1000;n++>{b=fun<n>;a=fun<b>if<a!=b&&a==n>printf<"\n%d,%d\n",a,b>;} }14、用递归法求下列问题的解:一对小兔,一个月后长成中兔,第二个月长成大兔,长成大兔,长成大兔后以后每个月生一对小兔.第20个月有多少对兔子?15、定义一个函数long f<char s[ ]>,函数功能是将字符串s<只由数字符组成>转换为一个整数,并作为函数的返回值.long f<char s[ ]>{ }void main<>{ char s[10];long int res;gets<s>;res=f<s>;printf<"%ld\n",res>; }16、自编一函数,其功能是求一维数组最大值的下标,最大值由主函数输出.int fun<float aa[ ],int n >{ }void main<>{float a[10];int k,max;for<k=0;k<10;k++>scanf<"%f’,a+k>;max=fun<a,10>;printf<"Max=%f\n",a[max]>; }17、编写一个函数fun<char s[ ],int n>,函数的功能是将字符串s循环左移n个字符.主函数输入一个字符串的一个整数.void fun<chaf s[ ],int n>{ }void main<>{char ss[255];int n;gets<ss>;printf<"Input data:\n">;scanf<"%d",&n>;fun<ss,n>;puts<ss>;}18、编写一个函数,其功能是将字符串中指定的字符删除.void fun<char *ss,char c>{ }void main<>{char s[255],ch;printf<"Input a string:\n">;gets<s>;printf<"Input a character:\n">;scanf<"%c",&ch>;fun<s,ch>;puts<s>;}19、完成下面的函数,函数的功能是将a数中大于平均值的数组元素存入b数组中,大求平均值的数据个数通过指针方式返回.void fun<int *a,int *b,int k,int *n>{ }void main<>{int a[10],b[10],kk,,sum;for<kk=0;kk<10;kk++>scanf<"%d",aa+k>;fun<a,b,10,&sum>;for<kk=0;kk<sum;kk++>printf<"%6d",*<b+kk>>;}20、从键盘输入一任意的字符串,编一函数,其功能是将该字符串的数字字符构成一个数据返回.例如:输入字符串为1dfk3d45,得到返回值为1345.void fun<char *s,long int *n>{ }void main<>{char s[20];long int d;gets<s>;fun<s,&d>;printf<"%ld\n",d>;}参考答案1.#include<stdio.h>#include<math.h>void main<>{float a=3,b=4,c=5,p=0,s=0;if<<a+b>c>&&<a+c>b>&&<b+c>a>>{p=0.5*<a+b+c>;s=sqrt<p*<p-a>*<p-b>*<p-c>>;printf<"面积是%f\n",s>;}else printf<"不能构成三角形\n">;}2.#include<stdio.h>#include<math.h>void main<>{int age;printf<"请输入年龄:">;scanf<"%d",&age>;if<age>=2&&age<=6>if<age<=3>printf<"编入小班\n">;elseif<age<=5>printf<"编入中班\n">;elseprintf<"编入大班\n">;elseprintf<"您的输入有误!\n">;}3.〔1〕#include<stdio.h>void main<>{int n;printf<"请输入数n:\n">;scanf<"%d",&n>;if<n%3==0&&n%5==0&&n%7==0>printf<"能同时被3,5,7整除">;}〔2〕#include <stdio.h>void main<>{int n;printf<"请输入数n:\n">;scanf<"%d",&n>;if<n%3==0&&n%5==0&&n%7!=0> printf<"能同时被3,5整除\n">;if<n%3==0&&n%5!=0&&n%7==0> printf<"能同时被3,7整除\n">;if<n%3!=0&&n%5==0&&n%7==0> printf<"能同时被5,7整除\n">; }<3>#include <stdio.h>void main<>{int n;printf<"请输入数n: ">;scanf<"%d",&n>;if<n%3==0&&n%5!=0&&n%7!=0> printf<"只能被3整除\n">;if<n%3!=0&&n%5==0&&n%7!=0> printf<"只能被5整除\n">;if<n%3!=0&&n%5!=0&&n%7==0> printf<"只能被7整除\n">;}<4>#include <stdio.h>void main<>{int n;printf<"请输入数n: ">;scanf<"%d",&n>;if<n%3!=0&&n%5!=0&&n%7!=0>printf<"不能被3、5、7中的任何一个数整除\n">;}4..#include <stdio.h>void main<>{int i;for<i=1;i<100;i++>{if<i%10 == 6 && i%3 == 0>printf<" %d",i>;}printf<"\n">;}5.#include <stdio.h>void main<>{float sum = 0;for<int i=1;i<=500;i++>{if<i%5 == 0>sum+=<1.0/i>;}printf<"sum=%f\n",sum>;}6.#include <stdio.h>void main<>{int n=0;float s=0,sum=0;printf<"请输入若干学生成绩<输入-1结束>:">;while<s!=-1>{sum+=s;scanf<"%f",&s>;n++;} sum=sum/<n-1>;printf<"该课程的平均成绩是:%5.2f\n",sum>;}7.#include <stdio.h>void main<>{int Red,White,Black;int Count=0;for <Red=0;Red<=3;Red++>for<White=0;White<=3;White++>{Black=8-Red-White;if <Black>=0 && Black<=6>printf<"%2d. %d个红球,%d个白球,%d个黑球\n",++Count,Red,White,Black>;}printf<"\n共有%d种!\n\n",Count>;}8.<这道题目就是看可以分解成多少个5相乘的数>#include <stdio.h>int main<>{int result=0;for<int i=1; i<=2012; ++i>for<int n=i; n%5==0; n/=5>++result;printf<"%d\n",result>;return 0;}9.#include <stdio.h>void main<>{long i,j,k;k=10;for<i=1;i<=1000;i++>{if<i==k>{k*=10;}j=i*i;if<j%k==i>{printf<"%ld\t%ld\n",i,j>;}}}10.#include <stdio.h>void main<>{int n,count=0;printf<"请输入一个整数n:">;scanf<"%d",&n>;for<int i=n; i>=2; i-->for<int t=2; t*t<=i; t++>{if<i%t==0>break;else{count++;if<count<=5>printf<"%d\t",i>;break;}}printf<"\n">;}11.#include <stdio.h>#include<math.h>float fun<float esp>{int n=0;float s=0;do{n++;s+=pow<-1,n-1>*1.0/pow<n,n>;}while<1.0/pow<n,n>>esp>;return s;}void main<>{float esp;scanf<"%f",&esp>;printf<"%f\n",fun<esp>>;}12.#include<stdio.h>void change<int x,int r>{int a[32],i;for<i=0;x!=0;i++>{a[i]=x%r;x/=r;}for<i--;i>=0;i-->printf<"%d",a[i]>;printf<"\n">;}void main<>{int x,r;printf<"请输入x和r:">;scanf<"%d%d",&x,&r>;change<x,r>;}13.#include <stdio.h>int fun<int x>{int y=0;for<int i=1;i<x;i++>{if<x%i==0>y+=i;}return y;}void main<>{int n,a,b;for<n=1;n<1000;n++>{b=fun<n>;a=fun<b>;if<a!=b&&a==n>printf<"%d %d\n",a,b>;}}14.#include <stdio.h>int func<int n>{if<n==1||n==0>return 1;else return 2*func<n-1>+func<n-2>; }void main<>{printf<"%d\n",func<20>>;}15.#include <stdio.h>#include<math.h>long f<char s[ ]>{ long t=0;for<int i=0;i<10;i++>{t+=<s[i]-48>*pow<10,9-i>;}return t;}void main<>{ char s[10];long int res;gets<s>;res=f<s>;printf<"%ld\n",res>;}16.#include <stdio.h>int fun<float aa[],int n >{ int max=0;for<int i=0;i<10;i++>if<aa[i]>=aa[max]>max=i;return max;}void main<>{float a[10];int k,max;for<k=0;k<10;k++>scanf<"%f",&a[k]>;max=fun<a,10>;printf<"Max=%f\n",a[max]>; }17.#include <stdio.h>#include <string.h>void fun<char s[ ],int n> {char a[200]="";memcpy<a,s,n>;strcat<strcpy<s,s+n>,a>; }void main<>{char ss[255];int n;gets<ss>;printf<"Input data:\n">;scanf<"%d",&n>;fun<ss,n>;puts<ss>;}18.#include <stdio.h>void fun<char *ss,char c>{int i,j;for<i=0;ss[i]!=0;i++>{if<ss[i]==c>for<j=i;ss[j]!=0;j++>ss[j]=ss[j+1];}}void main<>{char s[255],ch;printf<"Input a string:\n">;gets<s>;printf<"Input a character:\n">;scanf<"%c",&ch>;fun<s,ch>;puts<s>;}19.#include<stdio.h>void fun<int *a,int *b,int k,int *n> {float sum=0,avg=0;int i,j=0;for<i=0;i<k;i++>sum+=*<a+i>;avg=sum/k;for<i=0;i<k;i++>{if<a[i]>avg>{b[j]=a[i];j++;}}*n=j;}void main<>{ int a[10],b[10],kk,sum;for<kk=0;kk<10;kk++>scanf<"%d",&a[kk]>;fun<a,b,10,&sum>;for<kk=0;kk<sum;kk++>printf<"%6d",*<b+kk>>;}20.#include <stdio.h>#include<math.h>void fun<char *s,long int *n> {long int t=0;int count=0,i;int a;for<i=0;i<20;i++>{if<s[i]>=48&&s[i]<=57>{count++;}}for<i=0;i<20;i++>{if<s[i]>='0'&&s[i]<='9'>{ count--;t=t+<s[i]-48>*pow<10,count>;}}*n=t;}void main<>{ char s[20];long int d;gets<s>;fun<s,&d>;printf<"%ld\n",d>;}。
计算机二级C语言上机操作题及答案
![计算机二级C语言上机操作题及答案](https://img.taocdn.com/s3/m/963ca5e5185f312b3169a45177232f60ddcce705.png)
计算机二级C语言上机操作题及答案计算机二级C语言上机操作题及答案给定程序中,函数fun的功能是: 有N*N矩阵.以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0.例如,若N=3,有下列矩阵:1 2 34 5 67 8 9计算结果为:1 0 06 5 010 14 9请勿改动主函数main和其它函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句.#include#define N 4void fun(int (*t)___1___){int i, j;for (i=1; i {for (j=0; j {___2___ = t[i][j]+t[j][i];___3___ = 0;}}}main(){int i, j, t[][N] ={21, 12, 13, 24, 25, 16, 47, 38, 29, 11, 32, 54, 42, 21, 33, 10}; printf("\nThe original array:\n");for (i=0; i {for (j=0; j printf("- ", t[i][j]);printf("\n");}fun(t);printf("\nThe result is:\n");for (i=0; i {for (j=0; j printf("- ", t[i][j]);printf("\n");}}答案:第一处:[N]第一处:t[i][j]第三处:t[j][i]。
C语言正式上机题
![C语言正式上机题](https://img.taocdn.com/s3/m/de821a30492fb4daa58da0116c175f0e7cd119ba.png)
C语⾔正式上机题C语⾔上机实验题⽬1 打印图形1.输⼊n值,打印下列图形:**************** 当n = 4时2.输⼊n值,打印下列⾼和上底均为n 的等腰梯形:**************************** 当n = 4时3.输⼊n值,打印下列⾼和下底均为n 的等腰梯形:**************************** 当n = 4时4.输⼊n值,打印下列⾼和上底均为n的等腰空⼼梯形:****** ** ** ************** 当n = 5时5.输⼊n值,打印下列⾼和下底均为n的等腰空⼼梯形:************** ** ** ****** 当n=5时6.编写程序打印下列上三⾓形式的乘法九九表:1 2 3 4 5 6 7 8 9 ——————————————————1 2 3 4 5 6 7 8 94 6 8 10 12 14 16 1825 30 35 40 4536 42 48 5449 56 6364 72817.编写程序打印下列乘法九九表:1 2 3 4 5 6 7 8 9 ——————————————————8164 7249 56 6336 42 48 5425 30 35 40 4516 20 24 28 32 369 12 15 18 21 24 274 6 8 10 12 14 16 181 2 3 4 5 6 7 8 98.编程打印数字⾦字塔:11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 6 7 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 9.编程打印数字⾦字塔:1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 6 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 110.输⼊n值,打印边长为n的空⼼正六边形:******* ** ** ** ** ** ** ** ** ******* 当n = 6时11.编写程序输出下⾯的图形,要求输⼊顶⾏字符和图形的⾼。
(完整版)C语言上机练习题及答案
![(完整版)C语言上机练习题及答案](https://img.taocdn.com/s3/m/4da822070622192e453610661ed9ad51f01d548e.png)
(完整版)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语言
![上机考试题库c语言](https://img.taocdn.com/s3/m/08337107793e0912a21614791711cc7931b7782c.png)
上机考试题库c语言一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. floatC. voidD. function2. 若有定义int a=5;,则以下哪个表达式的值不为5?A. a++B. a--C. ++aD. --a3. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$24. 在C语言中,以下哪个选项表示逻辑“与”操作?A. &&B. ||C. !D. &5. 以下哪个选项是C语言中的整型数据类型?A. intB. floatC. doubleD. char6. 在C语言中,以下哪个选项用于声明一个指针?A. *B. &C. %D. #7. 若有定义int a[5]={1,2,3,4,5};,则以下哪个表达式的值不为3?A. a[2]B. *(a+2)C. a+2D. *a8. 在C语言中,以下哪个选项表示逻辑“或”操作?A. &&B. ||C. !D. |9. 在C语言中,以下哪个选项用于声明一个字符数组?A. char a[5]B. int a[5]C. float a[5]D. double a[5]10. 若有定义char str[10]="Hello";,则以下哪个表达式的值不为'o'?A. str[4]B. *(str+4)C. str+4D. *(str+5)二、填空题(每题2分,共20分)1. 在C语言中,用于声明一个整型变量的关键字是______。
2. 若有定义int a=10;,则表达式a++的值是______。
3. C语言中,用于声明一个浮点型变量的关键字是______。
4. 在C语言中,用于声明一个字符型变量的关键字是______。
5. 若有定义int a[5]={1,2,3,4,5};,则表达式*(a+2)的值是______。
C语言上机考试试题8
![C语言上机考试试题8](https://img.taocdn.com/s3/m/061bf9c681c758f5f61f67fe.png)
六、程序设计(评分标准20分,每小题10分)
1. 假设有一个班级,其中班级里共有10个学生。编写程序:在程序 中输入这10个学生的英语成绩,要求输入的成绩必须大于等于40且小于 等于100。然后统计英语成绩及格(成绩>=60)的学生人数,并输出。 最后输出这10位学生的平均成绩。 参考答案: #include "stdio.h" int main() { float score[10]; int num=0,i=0; float sum=0.0; printf("enter score:\n"); for(i=0;i<10;i++)
exit(1); } else
for( i=1;i<=num;i++) { /* $1 */
sum=sum+i; } printf("%d",sum); return 1; } 操作说明:
在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行是根据 程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加
运行样例1行 运行样例1:6 运行结果:5 5
2. 假设该程序输入两个数据:2 3,则程序运行结果为:2。 #include <stdio.h> int get(int *x,int *y) { int m; m=*x; m+=*y-3; return(m); } void main() { int x,y,k; int *a,*b; scanf(“%d%d”,x,y); /* $1 */ a=&x; b=&y; k=get(a,b); printf(“%d\n”,k); } 操作说明:
C语言上机题库
![C语言上机题库](https://img.taocdn.com/s3/m/349c2c9bb8d528ea81c758f5f61fb7360b4c2ba6.png)
C语言上机题库━━━━━━━━━━━━━━━一、判断共10题(共计20分)━━━━━━━━━━━━━━━第1题(2.0分)题号:1225在给变量命名时,c语言区分小小写字母,即为指出name和name不是同一个变量.答案:y第2题(2.0分)题号:1279循环结构while、dowhile、for不可以互相嵌套.答案:n第3题(2.0分)题号:1140链表中的任何一个结点,必然必须包含一个指针域.答案:y第4题(2.0分)题号:1265在书写c程序时,一行内就可以写下一条语句,一条语句也无法写下在多行上.答案:n第5题(2.0分)题号:1280c语言程序中使用的所有变量必须在采用之前展开定义.答案:y第6题(2.0分)题号:1269若定义inta[4]={1,2,3,4};若超界提及a[4]则编程时不收起.答案:y第7题(2.0分)题号:19c语言本身不提供更多输入输出语句,输出和输入操作方式就是由函数去同时实现的。
答案:y第8题(2.0分)题号:11通过return语句,函数可以送回一个或一个以上的返回值。
答案:n第9题(2.0分)题号:24对于数值型数组,c语言中就可以逐个提及数组元素而无法一次提及整个数组。
答案:y第10题(2.0分)题号:33inti,*p=&i;是正确的c说明。
答案:y━━━━━━━━━━━━━━━━━二、单项挑选共15题(总计30分后)━━━━━━━━━━━━━━━━━第1题(2.0分)题号:87c语言源程序的基本单位是()。
a:过程b:函数c:子程序d:标识符答案:b第2题(2.0分后)题号:110c语言中,char类型数据占()。
a:1个字节b:2个字节c:4个字节d:8个字节答案:a第3题(2.0分后)题号:112以下程序的输入结果就是()。
main(){charc1=97,c2=98;printf(\}a:9798b:97bc:a98d:ab答案:b第4题(2.0分后)题号:170关于return语句,下列正确的说法是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:考查字符串数组的应用。
输出26个英文字母。
-------------------------------------------------------*/#include <stdio.h>void main (void){char string[256];int i;/***********SPACE***********/for (i = 0; i < 26; 【?】i++)/***********SPACE***********/string[i] = 【?】'A'+i;string[i] = '\0';/***********SPACE***********/printf ("the arrary contains %s\n",【?】string);}/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:计算并输出high以内最大的10个素数之和,high由主函数传给fun函数,若high的值为100,则函数的值为732。
-------------------------------------------------------*/#include <conio.h>#include <stdio.h>#include <math.h>int fun( int high ){int sum = 0, n=0, j, yes;/***********SPACE***********/while ((high >= 2) && (【?】n<10)){yes = 1;for (j=2; j<=high/2; j++ )/***********SPACE***********/if (【?】high%j==0){yes=0;break;}if (yes){sum +=high;n++;}high--;}/***********SPACE***********/ 【?】return sum;}main ( ){printf("%d\n", fun (100));}/*------------------------------------------------ 【程序设计】--------------------------------------------------功能:求一批数中小于平均值的数的个数。
------------------------------------------------*/#include<stdio.h>void wwjt();int average_num(int a[],int n){/**********Program**********//********** End **********/}main(){int n,a[100],i,num;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);num=average_num(a,n);printf("the num is:%d\n",num);wwjt();}void wwjt(){FILE *IN,*OUT;int n;int i[10];int o;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<5;n++){fscanf(IN,"%d",&i[n]);}o=average_num(i,5);fprintf(OUT,"%d\n",o); fclose(IN);fclose(OUT);}/*------------------------------------------------【程序设计】--------------------------------------------------功能:用辗转相除法求两个整数的最大公约数。
------------------------------------------------*/#include<stdio.h>void wwjt();int gcd(int n,int m){/**********Program**********//********** End **********/}main(){int n,m,result;scanf("%d%d",&n,&m);result=gcd(n,m);printf("the gcd is %d\n",result); wwjt();}void wwjt(){FILE *IN,*OUT;int m,n;int i[2];int o;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<6;n++){for(m=0;m<2;m++){fscanf(IN,"%d",&i[m]);}o=gcd(i[0],i[1]);fprintf(OUT,"%d\n",o);}fclose(IN);fclose(OUT);}/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:数组名作为函数参数,求平均成绩。
-------------------------------------------------------*/#include <stdio.h>float aver(float a[ ]) /*定义求平均值函数,形参为一浮点型数组名*/ {int i;float av,s=a[0];for(i=1;i<5;i++)/***********SPACE***********/s+=【?】(a)[i];av=s/5;/***********SPACE***********/return 【?】av;}void main(){float sco[5],av;int i;printf("\ninput 5 scores:\n");for(i=0;i<5;i++)/***********SPACE***********/scanf("%f",【?】&sco[i]);/***********SPACE***********/av=aver(【?】sco);printf("average score is %5.2f\n",av);}/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。
高位仍在高位,低位仍在低位。
-------------------------------------------------------*/#include <conio.h>#include <stdio.h>void fun (long s, long *t){int d;long sl=1;/***********SPACE***********/【?】*t = 0;while ( s > 0){/***********SPACE***********/d = 【?】s%10;if(d%2){/***********SPACE***********/*t = 【?】d*s1 + *t;/***********SPACE***********/sl 【?】*= 10;}s /= 10;}}main(){long s, t;printf("\nPlease enter s:"); scanf("%ld", &s);fun(s, &t);printf("The result is: %ld\n", t);}/*------------------------------------------------【程序设计】--------------------------------------------------功能:从键盘上输入任意实数,求出其所对应的函数值。
z=e的x次幂(x>10)z=log(x+3) (x>-3)z=sin(x)/((cos(x)+4)------------------------------------------------*/#include <math.h>#include<stdio.h>void wwjt();double y(float x){/**********Program**********//********** End **********/}main(){float x;scanf("%f",&x);printf("y=%f\n",y(x));wwjt();}void wwjt(){FILE *IN,*OUT;int n;float i;double o;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<10;n++){fscanf(IN,"%f",&i);o=y(i);fprintf(OUT,"%ld\n",o);}fclose(IN);fclose(OUT);}/*------------------------------------------------ 【程序设计】--------------------------------------------------功能:编写函数用冒泡排序法对数组中的数据进行从小到大的排序。