C语言程序设计上机考试试题和参考答案

#include<stdio.h> int fun(int n); main() {
int i, flag;
for (i = 100; i <= 10000; i++) //1
{
flag = fun(i);
//2
if (flag)
{
printf("%d\n", i); //1
}
}
}
int fun(int n)
void Input(int a[][10],int n);
int Compute(int a[][10],int n); ***输入提示信息***:"Input n(n<=10):\n" ***输入数据格式***:"%d" ***输入提示信息***:"Input matrix:\n" ***输入数据格式***:"%d" ***输出数据格式***:"sum=%d\n" 注:
//2
term = term * 10 + 3;
//2
}
printf("sum=%ld\n", sum);
//1
}
2.(15 分)请按给定要求编写程序,编程打印 100~10000 之间的所有完数。所谓完 数是指一个数的所有因子(除其自身)之和恰好等于其自身。如 6 就是一个完数 因为 6=1+2+3。判断一个数是否是完数请按给定的函数原型编程实现,若是完数 函数返回值为 1,否则返回值为 0。函数原型如下: int fun(int n); ***输入提示信息***:无 ***输入数据格式***:无 ***输出数据格式***:"%d\n" 注:不按给定的函数原型编写程序,即使程序运行结果正确也不给分。 参考答案
char str1[80], str2[80]; int m, n;
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); }
printf("Input matrix:\n");
for (i = 0; i < n; i++)
//1
{
for (j = 0; j < n; j++) //1
{
scanf("%d", &a[i][j]); //1}}}
int Compute(int a[][10], int n)
{
int i;
int sum = 0;
if (++n == 1) head = p1;
else p2->next = p1;
p1 = p2; p1 = (struct node*)malloc(SIZE); printf("Input %d node data:\n", n + 1); scanf("%d%f", &p1->num, &p1->score); } free(p1); printf("Prit list:\n"); p2->next = NULL; if (head != NULL) {
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;
p2=head; while (p1 != NULL) {
printf("num:%d\tscore:%.2f\n", p1->num, p1->score); p1 = p1->next; } } return 0; }
普通编程题(60 分)
1.(15 分)编程计算:3+33+333+...+33...3(n 个 3)的值,n 值由键盘输入。 ***输入提示信息***:"Input n:\n" ***输入数据格式***:"%d" ***输出数据格式***:"sum=%ld\n" 注:不允许使用 goto 语句
//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 函数的函数原型如下:
} int main() {
int n = 0; struct node *head = NULL, *p1, *p2; p1 = p2 = (struct node*)malloc(SIZE); printf("Input %d node data:\n", n + 1); scanf("%d%f", &p1->num, &p1->score); while (p1->num != 0) {
普通编程题(60 分) 1.(15 分)编程计算:3+33+333+...+33...3(n 个 3)的值,n 值由键盘输入。
***输入提示信息***:"Input n:\n" ***输入数据格式***:"%d" ***输出数据格式***:"sum=%ld\n" 注:不允许使用 goto 语句 2.(15 分)请按给定要求编写程序,编程打印 100~10000 之间的所有完数。所谓完 数是指一个数的所有因子(除其自身)之和恰好等于其自身。如 6 就是一个完数 因为 6=1+2+3。判断一个数是否是完数请按给定的函数原型编程实现,若是完数 函数返回值为 1,否则返回值为 0。函数原型如下:
附加改错题(10 分) 1.(5 分)通过键盘输入 10 个单词,将 10 个单词排序后输出。下面程序中存在比较 隐蔽的错误,请通过分析和调试程序,发现并改正程序中的错误。改错时不能改 变程序原有的意图。 注意:将修改后的完整的源程序写在答题区内。 #include <stdio.h> int main() {
printf("Input n(n<=10):\n");
scanf("%d", &n);
//1
Input(a, n);
//2
sum = Compute(a, n);
//2
printf("sum=%d\n", sum); //1 } void Input(int a[][10], int n) {
int i, j;
void Input(int a[][10],int n);
int Compute(int a[][10],int n); ***输入提示信息***:"Input n(n<=10):\n" ***输入数据格式***:"%d" ***输入提示信息***:"Input matrix:\n" ***输入数据格式***:"%d" ***输出数据格式***:"sum=%d\n" 注: 1、请按行读入数据 2、请按给定的函数原型编写程序,否则即使程序运行结果正确,也不给分。 4.(15 分)请按题目给定要求,编写字符串复制函数 mystrcpy(str1,str2,m,n),该函数 功能是:把串 str1 的第 m 个字符开始的长度为 n 的子串复制到 str2 中,该函数 无返回值。要求在主函数读入字符串 str1、m 及 n 值,当函数调用结束后,在主函 数输出 str2 的结果。如:当输入 str1 为“hello!everyboday.”,m 为 2,n 为 4 时,得 到的 str2 结果为"ello"。mystrcpy 函数的函数原型为:
无返回值。要求在主函数读入字符串 str1、m 及 n 值,当函数调用结束后,在主函
数输出 str2 的结果。如:当输入 str1 为“hello!everyboday.”,m 为 2,n 为 4 时,得
到的 str2 结果为"ello"。mystrcpy 函数的函数原型为:
void mystrcpy(char str1[],char str2[],int m,int n );
char a[10][80]; int i, j; char min[10]; for (i = 0; i < 10; i++)
gets(a[i]); for (i = 0; i < 9; i++) {
合集下载

C语言程序设计上机考试试题和参考答案

C语言程序设计上机考试试题和参考答案
char str1[80], str2[80]; int m, n;
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语言上机考试训练题库及答案

c语言上机考试训练题库及答案
2000≤s<3000 10%折扣
3000≤s 15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为:f=p*w*s*(1-d),请按照上述标准利用switch语句编写程序计算运费,并画出程序NS图。
#include <stdio.h>
int main()
{
if(i%2==0&&i%3==0&&i%7==0)
printf("%d\n",i);
}
}
26.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#include<stdio.h>
main()
{
char ch;
int z=0,k=0,s=0,q=0;
while((ch=getchar())!='\n')
#include<stdio.h>
void main()
{int i,sum=0;
for(i=100;i<=996;i+=4)
if(i/10%10!=4)
sum+=i;
printf("和为:%d",sum);
}
15.输入一个字符串,统计该字符串的长度以及字母a出现的次数。
#include <stdio.h>
void main()
{int i,j=0;
char ch[ ]=" ";
printf("please input some characters\n");
gets(ch);
for (i=0;ch[i];i++)

一套简单的C语言上机试题及答案详解

一套简单的C语言上机试题及答案详解

C 语言上机模拟试题(附详细答案)1.程序填空题请补充main函数,该函数的功能是:从键盘输入一组字符串,以“*”结束输入,并显示出这个字符串。

例如,输入abcdefghi*,结果显示adcdefghi。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!#include <stdio.h>#include <windows.h>#define N 80main(){int i=-1,j=0;char str[N];system("cls");printf("\n Input a string \n");do{i++;/**********found**********/scanf(___1___);/**********found**********/}while(___2___);printf("\n**display the string** \n");while(j<i){/**********found**********/printf(___3___);j++;}}2.程序修改题下列给定程序中,函数fun()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。

请改正程序中的错误,使其能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <conio.h>#include <stdio.h>#include <windows.h>#define MAXLINE 20/**********found**********/fun(char *pstr[6]){int I, j;char *p;for(i=0;i<5;i++){for(j=i+1;j<6;j++)/**********found**********/{if(strcmp(*(pstr+i),pstr+j)>0){p=*(pstr+i);/**********found**********/*(pstr+i)=pstr+j;*(pstr+j)=p;}}}}main(){int I;char *pstr[6],str[6][MAXLINE];system("cls");for(i=0;i<6;i++) pstr[i]=str[i];printf("Enter 6 string(1 string at eachline):\n ");for(i=0;i<6;i++) scanf("%s",pstr[i]);fun(pstr);printf("The strings after sorting:\n ");for(i=0;i<6;i++)printf("%s\n",pstr[i]);}3.程序设计题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。

C语言上机作业试题5套含答案

C语言上机作业试题5套含答案

第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。

程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。

例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。

例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。

(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。

)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。

方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。

例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。

⏹A说:不是我。

⏹B说:是C。

⏹C说:是D。

⏹D说:他乱说。

已知三个人说的是实话,一个人说的是谎话。

此刻要依照这些信息,找出做了好事的人。

VC语言上机试题及答案

VC语言上机试题及答案

C 语言上机考试题20套(试题)C 语言上机考试题(第一套)1.编写函数fun ,它的功能是:计算并输出下列级数和:)1(1321211+⨯++⨯+⨯=n n S 例如,当n = 10时,函数值为:0.909091注意:部分源程序给出如下。

请勿改动主函数main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。

试题程序:#include <conio.h>#include <stdio.h>double fun( int n ){…………}main() /*主函数 */{ clrscr();printf(″%f\n ″, fun(10));}2.在[10000, 20000]范围内考察个位数字是7的素数, 问:(1) 这样的素数有多少个?(2) 其中最大的一个等于几?3. 编写程序,从键盘输入一年份,判断该年份是否为闰年。

C 语言上机考试题(第二套)1.编写函数fun ,它的功能是:计算并输出下列级数和:)1(1321211+⨯++⨯+⨯=n n S 例如,当n = 10时,函数值为:0.909091注意:部分源程序给出如下。

请勿改动主函数main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。

试题程序:#include <conio.h>#include <stdio.h>double fun( int n ){…………}main() /*主函数 */{ clrscr();printf(″%f\n″, fun(10));}2.回文数是指正读和反读都一样的自然数。

例如,8, 121, 5445这三个数都是回文数。

求:(1) [1,1000]之内既是回文数,又是素数的最大整数。

(2) [1,1000]以内既是回文数,又是素数的整数有多少个。

3. 编写程序,能对输入一行字符,统计其中分别有多少个单词和空格。

C语言上机程序设计题库及答案

C语言上机程序设计题库及答案

C语言上机程序设计题库【程序设计】功能:根据整型形参m,计算如下公式的值:y=sin(m)*10。

【参考代码】double y=0;y=sin(m)*10;return(y);功能:若x、y为奇数,求x到y之间的奇数和;若x、y为偶数,则求x到y之间的偶数和。

【参考代码】int i,s=0;for(i=x;i<=y;i+=2)s=s+i;return s;功能:编写程序,实现矩阵(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; }功能:求一个四位数的各位数字的立方和。

【参考代码】int d,s=0;while (n>0){d=n%10;s+=d*d*d;n/=10;}return s;功能:请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。

二维数组中的数已在主函数中赋予。

【参考代码】int i,j;for(j=0;j<N;j++){pp[j]=tt[0][j];for(i=1;i<M;i++)if(tt[i][j]<pp[j])pp[j]=tt[i][j];}功能:求一组数中大于平均值的数的个数。

【参考代码】int i,k=0;float s=0,ave;for(i=0;i<n;i++)s+=a[i];ave=s/n;printf("%f ",ave);for(i=0;i<n;i++)if(a[i]>ave)k++;return k;题目:分别统计字符串中字母、数字、空格和其他字符出现的次数(字符长度小于80)。

C语言简单上机考试编程及答案(一)

C语言简单上机考试编程及答案(一)在学习C语言时,除了掌握基本语法和理论知识,还需要进行上机练习和编程考试来巩固和检查学习成果。

下面是一份C语言简单上机考试编程及答案,希望对大家练习和测试C语言知识有所帮助。

一、基础语法1.请编写一个程序,实现输入两个整数,输出它们的和、差、积和商。

#include <stdio.h>void main(){int a, b;printf("请输入两个整数:\n");scanf("%d%d", &a, &b);printf("a + b = %d\n", a + b);printf("a - b = %d\n", a - b);printf("a * b = %d\n", a * b);printf("a / b = %d\n", a / b);}2.请编写一个程序,判断输入的整数是否是偶数。

#include <stdio.h>void main(){int n;printf("请输入一个整数:\n");scanf("%d", &n);if (n % 2 == 0)printf("%d是偶数\n", n);elseprintf("%d是奇数\n", n);}二、循环语句1.请编写一个程序,输出1-100中所有偶数的和。

#include <stdio.h>void main(){int i, sum = 0;for (i = 1; i <= 100; i++){if (i % 2 == 0)sum += i;}printf("1-100中所有偶数的和为%d\n", sum);}2.请编写一个程序打印如下图案,要求任意输入大于等于3的整数n,如n=5时输出如下图案:*************#include <stdio.h>void main(){int i, j, k, n;printf("请输入一个大于等于3的整数:\n");scanf("%d", &n);for (i = 1; i <= n / 2 + 1; i++){for (j = 1; j <= n / 2 + 1 - i; j++)printf(" ");for (k = 1; k <= i * 2 - 1; k++)printf("*");printf("\n");}for (i = n / 2; i >= 1; i--){for (j = 1; j <= n / 2 + 1 - i; j++)printf(" ");for (k = 1; k <= i * 2 - 1; k++)printf("*");printf("\n");}}三、函数调用1.请编写一个函数,实现输入两个整数,返回它们的和。

C语言上机题参考答案

******
#include<stdio.h>
void main()
{int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)
printf(" ");
for(k=1;k<=i;k++)
printf("*");
printf("\n");
for(j=0;j<n-1;j++)
if(a[j]>a[j+1])
t=a[j],a[j]=a[j+1],a[j+1]=t;
for(i=0;i<n;i++)
{ s=0;
for(j=1;j<a[i];j++)
if(a[i]%j==0) s+=j;
if(s==a[i]) printf("%d ",a[i]);
}
2、定义三个整型变量,从键盘输入三个整数,计算平均值,计算结果输出到屏幕上,平均值保留2位小数。
示例:
输入:按如下格式输入3个数:
21 22 25
输出:(注意保留2位小数)
22.67
#include<stdio.h>
void main()
{int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%.2f\n",(a+b+c)/3.0);

C语言上机考试编程题以及答案

C语言上机考试编程题以及答案1、求1+2+3+……….+100。

(循环)答案#include<stdio.h>void main(){int i,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("%d",sum);}2、求1*2*3*……….*10。

(循环)答案void main(){int i=0,j=1;for (i=2;i<=10;i++){j*=i;}printf("%d",j);return 0;}3、输入三个数字,输出他们的最大值。

(if)答案#include<stdio.h>void main(){int a,b,c,d;scanf("%d,%d,%d",&a,&b,&c);d=max(a,b,c);printf("max=%d",d);getch();/*暂停看运行结果*/}int max(int x,int y,int z){int u;if(x>=y&&x>=z)u=x;else if(y>=x&&y>=z)u=y;elseu=z;return(u);4.用起泡法对十个数据排序(数组实现)答案#include<stdio.h>main ( ){ int i,j,t;static int a[10]={5,7,4,2,3,6,1,0,9,8};for(j=0;j<9;j++){ for(i=0;i<9-j;i++){ if(a>a){ t=a;a=a;a=t ;}}}for(i=0;i<10;i++)printf("%2d",a);}5、输入十个数字,逆序输出。

(数组实现)答案#include<stdio.h>main(){int a[10],i=0;for(i=0;i<=9;i++)scanf("%f",&a);printf("\n");for(i=9;i>=0;i--)printf("%f",a);}6输入两个数,交换他们的值并输出。

《C语言程序设计习题与上机指南》答案

第一部分习题篇第一章C语言概述一.单选题1.以下说法中正确的是(C)。

A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言中的main()函数必须放在程序的开始部分2.一个C语言程序是由(B)。

A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成3.C语言规定,在一个源程序中,main函数的位置(C)。

A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后4.以下叙述不正确的是(D)。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释只能位于一条语句的后面5.下列关于C语言的说法不正确的是(D)。

A)C语言既有高级语言的功能,也具有低级语言的一些功能B)C语言中的一条执行语句都必须用分号结束C)注释可以出现在程序中任意合适的地方D)include命令行后面必须加分号6.用C语言编写的代码程序(B)。

A)可以立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行7.用高级语言(如C语言)编写的程序称为(A)A)源程序B)目标程序C)可执行程序D)编译程序8.一个函数的组成有(A)。

A)函数首部和函数体B)函数名和函数的声明部分C)主函数和子函数D)声明部分和执行部分9.在C语言中,用来表示“取地址”的符号是(B)。

A)#B)&C)* D)@10.C语言是计算机高级语言,它适合于作为系统描述语言,它(A)。

A)既可用来写系统软件,也可用来写应用软件B)只能写系统软件,不能用来写应用软件C)不能写系统软件,只能用来写应用软件D)既不能写系统软件,也不能写应用软件二.填空题1.C语言用函数作为程序的模块单位,便于实现程序的模块化。

2.C语言允许直接访问物理地址,能进行位操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档