文档库 最新最全的文档下载
当前位置:文档库 › C语言上机模拟试题

C语言上机模拟试题

C语言上机模拟试题
C语言上机模拟试题

C语言机试模拟试题

一、改错题:(30分)

1、求一维数组a中的值为偶数的元素之和。

#include

sum ( int arr[ ],int n )

{ int i,s;

s = 0;

for ( i=0; i

if (arr[i] % 2 == 0)

/************found************/

s=s+i;改为:s = s + arr[i];

return (s);

}

void main()

{ int a[10]={10,4,2,7,3,12,5,34,5,9},i,s;

/************found************/

s = sum( a ,2 ); 改为:s = sum( a ,10 );

printf("The result is: %d\n", s);

}

2、求一维数组a中的值为奇数的元素之和。

#include

#include

int sum( int b[ ],int n )

{ int i,s = 0;

for ( i=0; i

if (b[i] % 2 == 1)

/************found************/

s = s + b[i]改为:s = s + b[i];

return (s);

}

void main()

{ int a[12]={10,4,2,7,3,12,5,34,5,9,21,19},n;

/************found************/

n = sum(a,2);改为:n = sum( a ,12 );

printf("The result is :%d\n",n );

}

3、求二维数组a中的最大值和最小值。

#include

void main()

{ int a[3][3]={4,4,34,37,3,12,5,6,5},i,j,max,min;

//clrscr();

max = min = a[0][0];

for ( i=0; i<3; i++)

/************found************/

for ( j=1; j<3; j++)改为:for ( j=0; j<3; j++)

{ if ( max < a[i][j] )

max = a[i][j];

/************found************/

if (min < a[i][j])改为:if (min > a[i][j])

min = a[i][j];

}

printf("The max is: %d\n", max);

printf("The min is: %d\n", min);

}

4、求一维数组a中的最大元素及其下标。

#include

void main()

{ int a[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos;

//clrscr();

max = a[0];

pos = 0;

for ( i=1; i<10; i++)

/************found************/

if (max > a[i])改为:if (max< a[i])

{

max = a[i];

/************found************/

i = pos;改为:pos = i;

}

printf("The max is: %d ,pos is: %d\n", max , pos); }

5、猴子吃桃的问题,求第一天的桃子数。

#include

#include

void main()

{ int i,j,x,p;

//clrscr();

x=1;

/************found************/

j=12;改为:j=11;

while(j>=1)

{ p=(x+1)*2;

/************found************/

p=x;改为:x = p;

j--;

}

printf("total is %d\n",p);

}

6、求一维数组a中的值为奇数的元素的平均值。

#include

double average( int arr[ ], int n )

{ int k=0,i; double s;

s = 0;

for ( i=0 ;i

/************found************/

if (arr[i] % 2 = 1)改为:if (arr[i] % 2 = =1)

{ s = s + arr[i]; k++; }

return (s/k) ;

}

void main()

{

int a[12]={10,4,2,7,3,12,5,34,5,9,21,18};

double s;

// clrscr();

/************found************/

s = average(a[12],12);改为:s = average(a,12);

printf("The result is: %.2f\n", s);

}

二、填空题:(30分)

1、求一维数组a中的素数的个数:

2、程序的功能是:在第一个循环中从键盘上给a数组的前M(M<100)个数组元素依次赋

值,在第二个循环中使a数组前M个元素中的值对称折叠,在最后一个循环中输出折叠后的 a数组的前M个元素。程序如下:

#define M 5

void main( )

{ int i,a[100],t;

//clrscr();

for(i=0;i

/**************found************/

___(1)___ -填写的语句为:scanf(“%d”:,&a[i]);

/**************found************/

for(i=0;___(2)___;i++) -填写的语句为:i

a[M-i-1]=a[i];

for(i=0;i

printf("%5d",a[i]);

printf("\n");

}

3、计算正整数num的各位上的数字之和。

#include

void main( )

{ int num,k;

//clrscr() ;

/************found************/

___(1)___; 填写的语句为:k=0;

printf("Please enter a number:") ;

scanf("%d",&num) ;

do

{

/************found************/

k=___(2)___ ; 填写的语句为:k=k+num%10;

num/=10;

} while(num) ;

printf("\n%d\n",k) ;

}

4、求cman=m!/n!*(m-n)!之值,例如:m=12,n=2时,cman is 66

#include

#include

long int fun(int x)

{long int s=1; int i;

for (i=1;i<=x;i++)

s*=i;

/************found************/

____(1)____; 填写的语句为:return s;

}

void main()

{ long int m=12,n=2,s1,s2,s3;

//clrscr();

s1=fun(m);

s2=fun(n);

s3=fun(m-n);

/************found************/

printf("Cmn is : %ld",____(2)____ ); 填写的语句为:s1/(s2*s3)

}

5、输出Fabonacci数列1,1,2,3,5……前20项,要求每位输出5个数。#include "stdio.h"

void main()

{ long int f[20]={1,1};

int i;

//clrscr();

/**************found************/

___(1)___;填写的语句:int j=0;

for(i=2;i<20;i++)

{

f[i]=f[i-1]+f[i-2];

/**************found************/

if(___(2)___) printf("\n");填写的语句:j++%5==0

printf("%8ld",f[i]);

}

printf("\n");

}

6、求两个正整数[m,n]之间所有既能被3整除也能被7整除的整数之和。

#include

#include

main()

{int m,n,i,t;

long int s=0;

//clrscr();

scanf("%d,%d",&m,&n);

if( m>n )

{ t=m; m=n; n=t;}

/************found************/

for (____(1)____;i++)填写的语句:i=m;i<=n;

if ( i%3==0 && i%7==0 )

s += i;

/************found************/

printf("Sum is : ____(2)____\n",s ); 填写的语句:%ld

}

7、从键盘输入一个由数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进

制数。例如:从键盘输入12345,则程序运行的结果应当为:n=12345

#include "stdio.h"

#include "string.h"

void main()

{ char s[10]; int i;

long int n;

//clrscr();

/**************found************/

___(1)___; 填写的语句:n=0

scanf("%s",s);

for(i=0;i

/**************found************/

n=n*10+___(2)___; 填写的语句:i+1

printf("n=%ld\n",n);

}

8、从键盘输入一个正整数n,计算并输出n的阶乘。

#include

#include

#include

long fac( int n )

{ int i;

long t=1;

for( i=2;i<=n;i++)

t = t*i;

return (t);

}

void main()

{ int n;

long int s;

// clrscr();

printf("Enter an integer number:");

/************found************/

____(1)____; 填写的语句:scanf("%ld",&n);

s = fac(n);

/************found************/

printf("The result is : ____(2)____\n",s); 填写的语句:%ld

}

三、编程题:(40分)

1、按下面的公式求s的近似值,直到最后一项值的绝对值小于x为止,x的值由键盘输入,

结果保留4位小数。

分析:这是一个求若干个数之和的累加问题,终止循环的条件是最后一项值的绝对值小于x,x的值由键盘输入,当退出循环时,sum的值已经累加了最后一项a的值,因此要减去最后一项a的值。

S=1-1/3+1/5-1/9+…..+(-1)^(n-1)1/2n-1

#include "stdio.h"

#include "math.h"

#include "stdlib.h"

double fun(double x)

{

/***********begin***********/

int y,i=1;

double a,sum=0.0;

do{

if(i%2==0)

y=-1;

else y=1;

a=y*1.0/(2*i-1);

sum=sum+a;

i++;

}while (fabs(a)> =x);

return sum-a;

/***********end***********/

}

void main()

{

double x,sum;

printf("Enter x:\n");

scanf("%lf",&x);

sum=fun(x);

printf("sum=%.4f\n",sum);

NONO( );

}

NONO( )

{ FILE *fr,*fw;

int i;

double x;

fr=fopen("D:\\exam\\03200310\\PROGIN.DAT","r");

fw=fopen("D:\\exam\\03200310\\PROGOUT.DAT","w");

for(i=1;i<=5;i++)

{ fscanf(fr,"%lf",&x);

fprintf(fw,"s=%.4f\n",fun(x));}

fclose(fr);

fclose(fw);

}

2、将一个4位的整数m拆开,然后按相反的顺序输出,每输出一位数其后留2个空格。如m=1234,输出的结果应为m=1234, 4 3 2 1.程序如下:

#include "stdio.h"

#include "math.h"

#include "stdlib.h"

void main()

{ int m=1234,a,b,c,d;

/***********begin***********/

a=m%10;

b=m/10%10;

c=m/100%10;

d=m/1000;

/************end************/

printf("m=%d,%d %d %d %d\n",m,a,b,c,d);

NONO(m,a,b,c,d);

}

NONO( x,a,b,c,d )

int x,a,b,c,d;

{ FILE *f;

f=fopen("D:\\exam\\03200302\\PROGOUT.DA T","w");

fprintf(f,"x=%d: %3d%3d%3d%3d####\n",x,a,b,c,d);

fclose(f);

}

3、按下面的公式,求S的近似值。S=1+1/2*2+1/3*3+…+1/n*n #include "stdio.h"

#include "math.h"

#include "stdlib.h"

double fun(int n)

{

/***********begin***********/

int i;

double p,sum=0.0;

for(i=1;i<=n;i++)

{p=i*i;

sum=sum+1.0/p;

}

return sum;

/************end************/

}

void main()

{ double s;

int n;

//clrscr();

printf("Enter s:\n");

scanf("%d",&n);

s=fun(n);

printf("s= %.3f\n",s);

NONO( );

}

NONO( )

{ FILE *fr,*fw;

int i,m;

fr=fopen("D:\\exam\\03200306\\PROGIN.DAT","r");

fw=fopen("D:\\exam\\03200306\\PROGOUT.DAT","w");

for(i=1;i<=5;i++)

{ fscanf(fr,"%d",&m);

fprintf(fw,"s=%.3f####\n",fun(m));}

fclose(fr);

fclose(fw);

}

a)求一个三数m的各位上的数字之和。m由键盘输入。#include

int fun(int m)

{

/***********begin***********/

int s=0;

while(m!=0)

{s=s+m%10;

m=m/10;}

return s;

/************end************/

}

void main()

{ int m,s;

//clrscr();

printf("Enter m :\n");

scanf("%d",&m);

s=fun(m);

printf("Result is: %d\n",s);

NONO( );

}

NONO( )

{ FILE *fr,*fw;

int i,j,k,m;

fr=fopen("D:\\exam\\03200308\\PROGIN.DAT","r");

fw=fopen("D:\\exam\\03200308\\PROGOUT.DAT","w");

for(i=1;i<=5;i++)

{ fscanf(fr,"%d",&m);

fprintf(fw,"Sum = %d\n",fun(m));}

fclose(fr);

fclose(fw);

}

b)求两个正整数m和n的最大公约数,将求出的最大公数存入变量t中。#include "stdio.h"

#include "math.h"

#include "stdlib.h"

void main()

{ int m=76,n=40,t,i;

/***********begin***********/

while(n!=0)

{i=m%n;

m=n;

n=i;}

t=m;

/************end************/

printf("The Highest Common Divisor of %d and %d is %d\n",m,n,t);

NONO(m,n,t);

}

NONO( int m,int n,int t)

{ FILE *f;

f=fopen("D:\\exam\\03200309\\PROGOUT.DA T","w");

fprintf(f,"Maximal Common Divisor Of %d and %d is %d\n",m,n,t);

fclose(f);

}

c)求两个正整数m和n的最小公倍数,将求出的最小公倍存入变量t中。#include "stdio.h"

#include "math.h"

#include "stdlib.h"

void main()

{ int m=6,n=45,t,i,temp;

/***********begin***********/

temp=n*m;

while(m!=0)

{i=n%m;

n=m;

m=i;}

t=temp/n;

/************end************/

printf("The Lowest Common Multiple of %d and %d is %d\n",m,n,t);

NONO(m,n,t);

}

NONO( int m,int n,int s)

{ FILE *f;

f=fopen("D:\\exam\\03200339\\PROGOUT.DA T","w");

fprintf(f,"Minimal Common Multiple Of %d and %d is %d\n",m,n,s);

fclose(f);

}

C语言上机报告答案

2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a 赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句 改成:printf("%c %c %d\n",a,b,c);

C语言上机考试题

考试时间120分钟题目中所有要求统计或输出的地方都要用printf函数输出相关内容要求:新建一个以自己中文姓名命名的文件夹,将如下题目的答案保存在该文件夹中,各题命名要求Exam1.c,Exam2.c,Exam3.c,Exam4.c,Exam5.c 只需提交每个题目的源文件 1.定义一个字符数组s[50],从键盘输入如下字符串给s数组中,统计其中数字字符的个数和英文字母的个数以及特殊字符的个数。(要求:输入的字符为:“123ABCDhijkop#&%*&!”)(本题5分) 输入功能,3个统计 2.从键盘输入10个元素给数组a,然后将这些元素逆向复制到数组b中(要求:输入的这10个数为:1,2,3,4,5,6,7,8,9,10)。(本题5分) 输入,逆序2个功能,错一个扣2分 3.使用循环嵌套,打印输出如下图形结果(提示使用两次循环嵌套)。 (本题5分) 没有中文后面扣1分 实现一半扣2分 4.从键盘上输入一个字符,如果是’M’,输出Mondey,’T’输出Tuesday,’W’输出Wednesday,’R’输出Tursday,’F’输出Friday,’S’输出Saturday,’U’输出Sunday,否则输出Error(本题5分)输入字符,switch语句,细节有错扣0.5 5.从键盘上输入10个学生的数学成绩,使用冒泡排序实现对成绩的排序功能(排序后的成绩按从低到高排列,效果如下), 输出排序后的学生成绩,输出最高成绩,输出最低成绩,将55-60之间的成绩(含55,不含60)修改为60,并统计被修改的成绩个数,统计及格人数,统计95(含95,优秀)分以上的学生成绩人数,输出及格率和优秀率(>=60,及格,>=95优秀)。(要求:输入的10个

西工大C语言上机考试题库

1:2:3 #include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k

C语言 数组 实验题目及答案

实验六数组程序设计 【实验目的】 1、掌握使用一维数组编程方法 2、掌握使用二维数组进行程序设计 【实验内容】 一、上机验证程序,并分析结果 要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。1、#include int main() { int a[ ]={1,2,3,4,5} , i, j, s=0 ; j = 1; for ( i = 4 ; i>=0 ; i--) { s = s+ a[i] * j ; j = j * 10 ; } printf(" s= %d \n" , s ); return 0; } 二、程序改错题 1.下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的个数。源代码如下,程序中存在错误,请将其改正。 #include int main()

{ int a(10);/*定义数组*/ int count,i;/* i循环变量 count 正数个数*/ for(i=0;i<=10;i++) {/*循环输入*/ scanf("%d",a[i]); } count=1; for(i=0;i<=10;i++) {/*查找正数*/ if(a(i)>0) count++; } printf("数组中正数有:%d个\n",count); return 0; } 三编写程序 1.编写程序要求输入30个学生的单科成绩,输出高于平均分的成绩。#include #define N 30 int main() { float score[N],sum=0,aver; int i; for(i=0;i<30;i++) { scanf("%f",&score[i]); sum=sum+score[i]; } aver=sum/30; printf("平均分为:%.2f\n",aver); for(i=0;iaver) printf("%.2f ",score[i]); printf("\n");

C语言上机实验题

第六章循环控制 通过本章实验作业应达目标 1.熟悉while、for、do_while、break、continue语句的作用与使用规范。 2.学习并掌握利用while语句、for语句、do_while语句实现循环结构。 3.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。 4.进行算法设计训练,能综合所学控制结构语句解决一般问题。 本章必须上交作业 程序6_1.c、6_2.c、6_5.c、6_6.c、6_8.c上传至211.64.135.121/casp。 本章开始,上机实验项目量加大,希望同学们多多自行上机。本章实验项目有余力都可以做一下并上交。 循环程序设计 计算机解决问题都是按指定的顺序执行一系列的动作。按照特定的顺序执行相应的动作来求解问题的过程称为算法。程序中的语句是算法的体现,而算法要解决的是“做什么”和“怎么做”的问题。 计算机程序中指定语句的执行顺序称为“程序控制”。结构化的程序控制包含三种基本结构:顺序结构,选择结构和循环结构。 1. 循环设计 循环是在循环条件为真时反复执行的一组计算机指令,是计算机解题的一个重要结构。循环控制有两种基本方法:计数法和标志法。 1)计数器控制的循环 事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。每循环一次,循环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。 教材例6.2、6.3、6.7都是典型的计数器控制的固定次数次数循环。 2)标志控制的循环 事先不知道准确的循环次数,由某一目标值标记循环的结束。如,教材例6.6中以|t|的值达到标记下限值1e-6作为循环的结束。 循环设计时要注意合理设计循环条件,使得循环不会成为死循环。 2. 算法 程序设计的首要工作是算法设计,离开了算法也就没有了程序。算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。 循环主要用来解决程序设计中两类基本的算法:穷举和迭代。 1)穷举 穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。 例:输入两个正整数x和y,求其最大公约数。 main() {int x,y,i,flag; printf("Please input two numbers:"); scanf("%d%d",&x,&y);

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

C语言上机实验标准答案.doc

实验一上机操作初步 (2 学时 ) 一、实验方式:一人一机 二、实验目的: 1、熟悉 VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个 C 程序。 3、初步了解 C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息: ( 实验指导书 P79) ************************* Very Good ************************* 2、计算两个整数的和与积。( 实验指导书 P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。 ( 书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include <> void main( ) {printf( printf( printf( “ ********************\n “Very Good\n” ); “ ********************\n ” ); ” ); } 2、#include <> void main( ) {int a,b,c,d; printf( “ Please enter a,b: ”);

scanf( “%d,%d” ,&a,&b); c=a+b; d=a*b; printf( “ %d+%d=%d\n” ,a,b,c); printf( “ %d*%d=%d\n” ,a,b,d); } 3、#include <> #include <> void main( ) { double x,s; printf( “ Please input value of x: ”); scanf( “%lf ” ,&x); s=cos(x); printf( “ cos(%lf)=%lf\n ”,x,s); } 4、#include <> void main( ) { printf( “ ==================================\n”); printf( “ 1 输入数据 2 修改数据 \n ”); printf( “ 3 查询数据 4 打印数据 \n ”); printf( “ ===================================\n”); } 5、#include <> void main( ) { int x,y,t; printf( “ Please enter x and y: ”); scanf( “%d%d”,&x,&y); t=x; x=y; y=t; printf( “ After swap:x=%d,y=%d\n ” ,x,y); } 实验二简单的 C程序设计 (4 学时 ) 一、实验方式:一人一机 二、实验目的: 1、掌握 C语言的数据类型。 2、学会使用 C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。

C语言上机考试题目

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、从键盘输入一个四位数的年份,判断其是否为闰年。 a ac b b 242-+-a ac b b 242---a b 2-a ac b 242-

10、有一个函数: 写出程序,输入x的值,输出对应的y的值。要求加上相应的文字说明。 11、编程实现大小字母的转换。从键盘输入一个字符,要求使用getchar()函数读入字符。如果输入的是一个小写字母,转换为大写字母;如果输入的是一个大写字吗,转换为小写字母;如果输入的是一个非字母符号,照原样输出。要求有文字说明。 12、判断从键盘输入的是数字字符、大写字母、小写字母、空格还是其他字符。 13、指定一个年龄,要求按照年龄阶段输出相应的时期:1到7是幼年,8到14是童年,15到21是少年,22到28是青年,29到49是中年,50到70是老年。 14、编写程序,将1至7中的任意一个数字转化成对应的英文星期几的前三个字母,如1转化为Mon,7转化为Sun等。 15、在屏幕上显示一张如下所示的时间表: *****Time***** 1 morning 2 afternoon 3 night

C语言程序设计_上机实验指导与习题_第三版_(陈湘骥_编著_著)_华南农业大学_参考答案

C语言程序设计上机实验指导与习题 参考答案 (仅供教师内部参考) 华南农业大学

目录 上机实验 (1) 实验 1 C语言程序初步 (1) 一、实验目的 (1) 二、实验内容 (1) 实验2基本数据类型、运算和表达式 (3) 一、实验目的 (3) 二、实验内容 (3) 实验3基本输入与输出 (5) 一、实验目的 (5) 二、实验内容 (5) 实验4选择结构程序设计 (4) 一、实验目的 (4) 二、实验内容 (4) 实验5循环结构程序设计(一) (9) 一、实验目的 (9) 二、实验内容 (9) 实验6循环结构程序设计(二) (15) 一、实验目的 (15) 二、实验内容 (15) 实验7数组 (17) 一、实验目的 (17) 二、实验内容 (17) 实验8字符数组的应用 (22) 一、实验目的 (22) 二、实验内容 (22) 实验9函数的基本应用 (24) 一、实验目的 (24) 二、实验内容 (24) 实验10指针与结构体 (26) 一、实验目的 (26) 二、实验内容 (26) *实验11链表 (29) 一、实验目的 (29) 二、实验内容 (29) *实验12文件 (32) 一、实验目的 (32) 二、实验内容 (32)

上机实验 实验 1 C语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。 (3)通过运行简单的C程序,初步了解C程序的特点。 (4)在教师的指导下,学会使用JudgeOnline实验系统。 二、实验内容 1. 运行第一个 C 程序 [题目:The first C Program] 将下列程序输入 TC(或 VC++),编译、连接和运行该程序。 void main() { printf("The first C Program\n"); } [具体操作步骤] 以 Turbo C 上的操作为例 (1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。 (2)在编辑窗口中输入程序。 (3)保存程序,取名为 a1.c。 (4)按照第一章中介绍的方法,编译、连接和运行程序。 2.在JudgeOnline系统中提交实现了计算a+b功能的程序 [题目 1001:计算 a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, void main() { int a, b; scanf("%d%d", &a, &b); 1

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C与C++语言) 笔试试卷 时间: 2008年4月19 日 上午9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 ) 2. 数据在计算机内存中的表示是指数据的存储结构。( 2 ) 3. Windows是多用户多任务操作系统。( 3 ) 4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 ) 5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 ) 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 ) 9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) 二、选择题(每小题1分,共5分) 1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。 11 (A) 可行性分析(B) 程序编码 (C) 详细设计(D) 需要分析 2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。 12 (A) 1,4,3,2 (B) 3,1,4,2 (C) 2,3,4,1 (D) 3,4,2,1 3. 任何两个并发进程之间(13 )。 13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 4. 以下的哪个特征不是分时操作系统的主要特征(14 )。 14 (A) 分时性(B) 独占性 (C) 交互性(D) 多路性 5. 需求分析中开发人员主要从用户那里了解(15 )。 15 (A) 软件的维护(B) 软件的结构 (C) 软件做什么(D) 软件的测试

C语言上机实验例题

实验一 C语言的运行环境、运行过程和表达式的使用 一、目的与要求 1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。 2、了解在该系统上如何编辑、编译、连接和运行一个C程序。 3、通过运行简单的C程序,初步了解C源程序的特点。 4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。 5、学会使用C的有关算术运算符,以及包含这些运算符的表达式 二、实验例题 【例1】编程实现在屏幕上显示如下三行文字 Hello, world ! Wolcome to the C language world! Everyone has been waiting for. 在Turbo C的集成环境下,键入如下源文件。敲Alt+F组合键打开File菜单,File菜单中Write to或save as选项可将默认文件名改为任意文件名。程序如下: main() { printf("Hello,World!\n"); printf("Wolcome to the C language world!\n"); printf("Everyone has been waiting for.\n"); } 然后用Ctrl+F9执行,用Alt+F5查看结果,即在屏幕上显示题目要求的三行文字。按回车键重新返回Turbo C的编辑环境。注意,在运行程序之前最好先存盘。 【例2】输入并运行程序,写出运行结果。 main() {

int a,b,sum; a=123;b=456; sum=a+b; printf(“sum is %d\n”,sum); } 运行方法同上,最后结果为:sum is 579。 【例3】 输入并运行程序,写出运行结果。 main() { int a,b,c; int max(int,int); scanf(“%d,%d”,&a,&b); c=max(a,b); printf(“max=%d”,c); } int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); } 这个程序的功能是对于任意输入的两个整数,输出较大的那个数。所以程序运行之后,光标将停留在用户屏幕上,等待用户输入两个整数,比如输入“3,5”,回车,在用户屏幕上就会输出“max=5”。 【例4】输入并运行下程序,写出运行结果。 mian() { char c1 , c2;

c语言上机考试训练题库及答案

上机考试习题集 1.编写程序,一次输入5个学生的3门课成绩,每输入一个学生的3门成绩后,立即统计并输出该学生的总分和平均分。 #include "stdio.h" void main() { int score[5][3], i,j; float sum[5],average[5]; printf("请分别输入三个学生的成绩:\n"); for(i=0;i<5;i++) { sum[i]=0; for(j=0;j<3;j++) {scanf("%d",&score[i][j]); average[i]=0; sum[i]+=score[i][j]; average[i]=sum[i]/5; } } for(i=0;i<5;i++) printf("第%d个学生的总分为:%f,平均成绩为:%f\n",i+1,sum[i],average[i]); } 2 、编写程序,提示用户从键盘输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后在显示器上输出此数,以便验证处理是否正确。 #include #include double rounding(double x,int n); void main() { double x,x1; int n; printf("请输入一个浮点数:\n"); scanf("%lf",&x); printf("请输入给定的小数位:\n"); scanf("%d",&n); x1=rounding(x,n); printf("圆整后的数为:\n%.*lf\n",n,x1); } double rounding(double x,int n)

大一C语言上机实验试题和答案

实验一上机操作初步(2学时) 一、实验方式:一人一机 二、实验目的: 1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include void main( ) { printf(“********************\n”); printf(“ Very Good\n”); printf(“********************\n”); } 2、#include void main( ) { int a,b,c,d; printf(“Please enter a,b:”); scanf(“%d,%d”,&a,&b); c=a+b; d=a*b; printf(“%d+%d=%d\n”,a,b,c); printf(“%d*%d=%d\n”,a,b,d);

C语言上机题库

C语言习题集 3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。 输入格式: B 输出格式: 26 #include 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 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 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 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

c语言上机实验

上机实验九函数 第1题:编写一个函数,利用参数传入一个3位数n,找到101~n间满足下列条件的数:他是完全平方数,又有两位数字相同,如144、676,函数返回这样的数的个数(提示,可以利用函数的嵌套调用,编写一个函数,判断一个整数是否满足条件)。 #include #include int main() { int number,a; int g(int ); printf("请输入一个大于101的三位数:"); scanf("%d",&number); a=g(number); printf("a=%d",a); return 0; } int g(int number) { int i,j,m,n,o,k=0; for(i=101;i<=number;i++) { j=sqrt(i); if((j*j)!=i) continue; m=i/100; n=i/10%10; o=i%10; if(m==n||m==o||n==o) {printf("%d\n",i);k++;} } return (k); } 第2题:编写有两个整数参数的函数multiple,用该函数确定一对整数中第二个整数是否第一个整数的整数倍,如果是,返回1,否则返回0。 #include #include main() {

int multiple(int x,int y); int x,y,a; printf("请输入两个整数x,y:"); scanf("%d%d",&x,&y); a=multiple(x,y); printf("%d",a); } int multiple(int x,int y) { int m,n; m=y%x; if(m!=0) n=0; else n=1; return (n); } 第2题:编写一个函数,用时间作为函数的三个参数(时、分、秒),返回自零点到该时间的秒数,并用这个函数计算同一天内两个时间之间的秒数。 #include int main() { int x1,x2,y1,y2,z1,z2,x,y; int time1(int x1,int y1,int z1); int time2(int x1,int y1,int z1,int x2,int y2,int z2); printf("请输入一个时间的时,分,秒x1,y1,z1:"); scanf("%d%d%d",&x1,&y1,&z1); printf("请再输入一个时间的时,分,秒x2,y2,z2:"); scanf("%d%d%d",&x2,&y2,&z2); x=time1(x1,y1,z1); y=time2(x1,y1,z1,x2,y2,z2); printf("%d,%d",x,y); return 0; } int time1(int x1,int y1,int z1) { int sum; sum=3600*x1+60*y1+z1; return sum; } int time2(int x1,int y1,int z1,int x2,int y2,int z2)

C语言程序设计课程C语言上机考试题—2014

1、从键盘输入10个整数,对这10个数排序(由小到大)后输出。 2、从键盘输入10个整数,对这10个数排序(由大到小)后输出。 3、对于一个自然数,如果该数的所有因子之和正好等于该数,则该数称为完数。统计1000以内的完数个数。 4、编写主函数和一个函数int diff(int year, int m1, int d1, int m2, int d2)。(1)函数diff计算year年的m1月d1日至m2月d2日之间相隔的天数(假设m1<=m2);(2)主函数中输入某年的两个日期,调用diff函数计算它们之间相隔的天数,并输出。 5、编写主函数和一个函数void merge(int a[], int b[], int c[])。要求是:(1)函数merge对两个已是升序的数组a、b进行归并,归并后的结果仍然是升序的,并通过形参c返回;(2)主函数:定义长度为5的数组a,并升序初始化;定义长度为8的数组b,并升序初始化;调用merge函数对数组a、b进行归并,输出归并结果。 6、从键盘输入一个0~99999之间的整数。 ①判断它是一个几位数; ②将该数的各位数字按逆序输出。 7、输入一行字符,统计其中有多少个单词并输出,单词之间用空格符分隔开。 8、输入10个整数,判断它们是否为素数。要求:编写一个函数int prime(int m)来判断形参变量m是否为素数,如果是素数则返回1,否则返回0。 9、输入10个学生的成绩,求平均成绩。要求控制成绩输入的正确性,即控制输入的成绩必须为0~100分。 10、编写主函数和一个函数int monthDay(int year, int month)。(1)函数monthDay 计算year年month月的天数,并返回;(2)在主函数中输入一个日期(年、月、日),计算该日是当年的第几天(说明:需要调用monthDay函数)。 11、写两个函数int gcd(int m, int n)和int lcm(int m, int n),分别求两个正整数m 和n的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个正整数的值在主函数中从键盘输入。 12、有0、1、2、3、4五个数字,能组成多少个互不相同且无重复数字的三位数?并计算这些三位数之和。 13、输出2至1000之间的所有同构数,所谓同构数是指它出现在它的平方数的右端。例如,5、6、25的平方分别等于25、36、625,所以5、6和25都是同构数。 14、编写一个函数,将一个数插入到已是升序的数组中,且插入后该数组仍是升序数组。已是升序数组的内容由主函数给出,待插入的数在主函数中输入。 15、编写一个程序,查找某数是否在给定的升序数组中,如果在则输出“Find success!”并输出它是第几个数,否则输出“No find!”。 16、有4个学生,每个学生有5门课程的成绩,编写一个程序计算每一个学生5门课程的平均成绩。 17、有4个学生,每个学生有5门课程的成绩,编写一个程序统计每一个学生有几门不及格的课程。 18、有4个学生,每个学生有5门课程的成绩,编写一个程序计算每一门课程4个学生的平均成绩。 19、有4个学生,每个学生有5门课程的成绩,编写一个程序统计每一门课程有几个不及格的学生。

大学大一c语言程序设计实验室上机题全部代码答案实验报告

C语言实验报告 实验1-1: hello world程序: 源代码: #include main() { printf(hello world!\n); system(pause); } 实验1-2: 完成3个数据的输入、求和并输出计算结果的程序:源代码: #include main() { int i,j,k,sum; scanf(%d%d%d,&i,&j,&k); sum=i+j+k; printf(sum=%d,sum); system(pause); 实验1-3: 在屏幕上输出如下图形: A BBB CCCCC 源代码: #include main() { printf( A\n); printf( BBB\n); printf( CCCCC\n); system(pause); } 实验2-1: 计算由键盘输入的任何两个双精度数据的平均值

源代码: #include main() { double a,b; scanf(%lf%lf,&a,&b); printf(%.1lf\n,(a+b)/2); system(pause); } 实验2-2: 写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f –g 表达式进行运算源代码: #include main() { float a,b,c,d,e,f,g,x; scanf(%f%f%f%f%f%f%f,&a,&b,&c,&d,&e,&f,&g); x=a + b * (c - d ) / e * f - g; 牰湩晴尨?春??※ system(pause); } 实验2-3: 编写一个C语言程序,测试下列各表达式: i, j i + 1 , j + 1 i++ , j++ ++i , ++j i+++++j 源代码: #include main() { int i=1,j=1; printf(%d %d\n,i+1,j+1); printf(%d %d\n,i++,j++); printf(%d %d\n,++i,++j); printf(%d\n,(i++)+(++j)); system(pause); } 实验2-4: 输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税

C语言上机作业试题5套

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数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说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求:

相关文档
相关文档 最新文档