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

C语言上机题目

C语言上机题目
C语言上机题目

重庆市计算机等级考试C语言上机模拟试题

1、函数adddigit的原型为int adddigit(int num);,其功能是

求num各位数字之和。要求编制该函数并用如下所示

的主函数进行测试,源程序存入test1.c。

# include “stdio.h”

# include “math.h”

void main()

{ int adddigit(int num);

int n;

scanf(“%d”,&n);

printf(“sum=%d\n”,adddigit(n));

}

2、编制程序输出如下所示图形,源程序存入test11.c。

1

121

12321

1234321

123454321

12345654321

3、编制程序实现功能:从键盘上输入若干个值为

0~32767之间的正整数,并将每个整数的各位数字之

和存放在数组a中。要求:被处理数据

的个数由键盘输入指定(小于50个数):

求每个整数各位数字之和的功能用自定

义函数实现:源程序存入test21.c。

4、编制程序实现其6Ⅹ6的整型矩阵的输入

数据,然后求出其最大元素以及最大元

素位置的下标并输出的功能,源程序存

入test41.c。

5、编程实现从键盘为一个6Ⅹ6整型数组输

入数据,然后找出其每一行中的最小值

保存在一维数组中,并输出该一维数组

的所有元素。源程序存入test51.c。

6、函数fac的原型为long fac(it j);,其

功能是利用静态变量实现n!。要求编制

该函数并用如下的主函数进行测试。源

程序存入test61.c。

7、函数chrn的原型为int chrn(char

*s,char c);,其功能是测试字符c

在字符串s中出现的次数。要求编

制该函数并用相应的主函数进行测

试。源程序存入test71.c。

8、求出100~999之间能够被3整除,且至少有一位数字是5的所有整数。源程序存入

test81.c。

9、编写一个程序计算下式之和。

1+(1+2)+(1+2+3)+……+(1+2+3+4+5+6+7+8+9+10). 源程序存入test91.c。

10、Fibonacci数列是这样一个数列,最前面的两个数分别是1和1,从第3个数开始,

数列中每个数是其前面的两个数之和。请编写程序求该数列中前20个数且要求每一行

输出10个数。源程序存入test91.c。

11、下面程序的功能是:统计文本文件f.dat中字符的个数。请输入并完善程序,源程

序存入test22.c。

# include “stdio.h”

void main()

{ FILE *fp;

long num=0l;

if(( (fp=fopen(“f.dat”,”r”))==NULL)

{ printf(“can not open the file\n”);

return;

}

while( fgetc(fp)!=feof(fp) )

num=num+1;

fclose(p);

printf(“num=%d\n”,num);

}

#include

void main()

{

FILE *fp,p;

long num=01;

if(((fp=fopen("f.dat","r"))==NULL))

{

printf("can not open the file\n");

return;

}

while(fgetc(fp)!=feof(fp))

num=num+1;

fclose(fp);

printf("nim=%d\n",num);

}

12、下列程序是将一个二维数组行和列的元素互换,存到另一个二维数组中。请输入并

完善程序。源程序存入test2.c 。

# include “stdio.h”

void main()

{ int ,j,arr1[2][3]={{2,4,6},{1,3,5}},arr2[3][2];

printf(“Array arr1:\n”);

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

{for(j=0; j<3 ;j++)

{ printf(“%5d”,arr1[i][j]);

arr2[j][i]=arr1[i][j];

}

printf(“\n”);

}

printf(“Array arr2:\n”);

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

{for(j=0; j<2 ; j++ )

printf(“%5d”,arr2[i][j]);

printf(“\n”);

}

}

#include

void main()

{

int i,j,arr1[2][3]={{2,4,6},{1,3,5}},arr2[3][2];

printf("Array arr1:\n");

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

{

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

{

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

arr2[j][i]=arr1[i][j];

}

printf("\n");

}

printf("Array arr2:\n");

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

{

for(j=0;j<2;j++)

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

printf("\n");

}

}

13、下述程序的功能是:在数组中同时查找最大元素下标和最小元素下标,并分别存放

在main函数的变量max和min中。请输入程序并填空,源程序存入test12.c。

# include “stdio.h”

void find(int *a,int n,int *max,int *min)

{ int k;

*max=*min=0;

for(k=1;k

{ if(a[k]>a[*max]) *max=k

if(a[l]

}

}

void main( )

{ int x[]={5,8,-7,2,12,7,3,10};

int max,min;

find( x,8,&max,&min );

printf(“\n%d,%d\n”,max,min);

}

#include

void find(int *a,int n,int *max,int *min)

{

int k;

*max=*min=0;

for(k=1;k

{

if(a[k]>a[*max]) *max=k;

if(a[1]

}

}

void main()

{

int x[]={5,8,-7,2,12,7,3,10};

int max,min;

find(x,8,&max,&min);

printf("\n%d,%d\n",max,min);

}

14、下面程序的功能是:输入两个字符串,将第二个字符串中ASCII码值为偶数的字

符连接在第一个字符串的后面。请输入程序并填空,源程序存入test22.c。

# include “stdio.h”

void main()

{ char s1[80],s2[40];

int I,j;

printf(“please input two stings:”);

gets(s1);

gets(s2);

for(i=0; s1[i]!=’\0’;i++);

for(j=0;s2[j]!=’\0’;j++)

if( s2[j]%2==0 ) s1[i++]=s2[j];

s1[i]=’\0’;

puts(s1);

}

#include

void main()

{

char s1[80],s2[40];

int i,j;

printf("please input two stings:");

gets(s1);

gets(s2);

for(i=0;s1[i]!='\0';i++);

for(j=0;s2[j]!='\0';j++)

if(s2[j]%2==0)

s1[i++]=s2[j];

s1[i]='\0';

puts(s1);

}

15、下列程序的功能是将一字符串s中的内容倒置。如输入的字符串为abcdefg,则输出的字符串为gfedcba。请输入程序并填空,源程序存入test32.c。

# include “stdio.h”

# include “string.h”

void main(

{ void f(char *s);

char s1[80];

gets(s1);

f( s1 );

puts(s1);

}

void f(char *s)

{ int i,k;

char t;

k= strlen(s) ;

for(i=0;i

{ t=s[i]; s[i]=s[k-i-l] ;s[k-i-1]=t;}

}

#include

#include

void main()

{

void f(char *s);

char s1[80];

gets(s1);

f(s1);

puts(s1);

}

void f(char *s)

{

int i,k;

char t;

k=strlen(s);

for(i=0;i

{

t=s[i];s[i]=s[k-i-1];s[k-i-1]=t;

}

}

16、下面程序是从键盘上输入十进制数据(可能超过32767),然后以二到十六进制数的形式输出。请输入程序并填空,源程序存入test42.c。

# include “stdio.h”

void main()

{ char b[16]={‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’};

char c[64];

int d,i=0,base;

long n;

scanf( “%ld”,&n );

scanf(“%d”,&base);

do

{ c[i]= n%base

i++;

n=n/base;

} while(n!=0);

for(--I;i>=0; i-- )

{ d=c[i];

printf(“%c”,b[d]);

}

}

#include

void main()

{

char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

char c[64];

int d,i=0,base;

long n;

scanf("%ld",&n);

scanf("%d",&base);

do

{

c[i]=n%base;

i++;

n=n/base;

}

while(n!=0);

for(--i;i>=0;i--)

{

d=c[i];

printf("%c",b[d]);

}

}

17、下面程序的功能是实现文件复制,源文件和目标文件文件名来自命令行。请输入程序并填空,源程序存入test52.c。

# include “stdio.h”

void main( int argc,char *argv[])

{ FILE *fin,*fout;

int count=0,c

if(argc!=3) return;

if((fin=fopen(argv[1],”r”))==NULL||(fout=fopen(argv[2],”w”))==NULL)

{ puts(“无法打开文件!“);

Exit(0);

}

while((c=fgetc(fin))&7!feof(fin))

fputc(c.fout);

fclose(fin);

fclose(fout);

}

18、下列函数功能是求n个学生成绩的平均分和最高分,并将这些数据从该函数返回到调用函数。请输入程序并填空,源程序存入test62.c。

# include “stdio.h”

float average (float array[],int n, float*max)

{ int I;

float sum=array[0];

*max=array[0]

for(i=1;i

{ if(array[i]>*max) *max=array[i];

sum=sum+array[i];

}

return sum/n

}

void main( )

{ float a[]={13,21,35,47,52,67,74,86,99,10},max,aver;

aver=average(a,10,&max);

printf(“%f,%f\n”,max,aver);

}

#include "stdio.h"

float average(float array[],int n,float*max)

{

int i;

float sum=array[0];

*max=array[0];

for(i=1;i

{

if(array[i]>*max)

*max=array[i];

sum=sum+array[i];

}

return sum/n;

}

void main()

{

float a[]={13,21,35,47,52,67,74,86,99,10},max,aver;

aver=average(a,10,&max);

printf("%f,%f\n",max,aver);

}

19、下面的程序通过average计算数组中各元素的平均值。请输入程序并填空,源程序存入test72.c

# include “stdio.h”

float average ( int a[],int n)

{ int x;

float avg =0 ;

for(x=0;x

avg=avg+ a[x] ;

avg=avg/n;

return avg;

}

void main( )

{ int a[5]={2,4,6,8,10};

float mean;

mean=average(a,5);

printf(“mean=%f\n”,mean);

}

#include"stdio.h"

float average(int a[],int n)

{

int x;

float avg =0;

for(x=0;x

avg=avg+a[x];

avg=avg/n;

return avg;

}

void main()

{

int a[5]={2,4,6,8,10};

float mean;

mean=average(a,5);

printf("mean=%f\n",mean);

}20、下面程序的功能是将字符串中的数字字符删除后输出。请输入程序并填空,源程序存入test82.c

# include “stdio.h”

void delnum( char s[] )

{ int I,j;

for( i=0,j=0;s[i]!=’\0’;i++)

if( s[i]<’0’||s[i]){s[j]=s[i];j++;}

s[j]=’\0’;

}

void main( )

{char s[80];

gets(s);

delnum(s);

printf(“\n%s\n”,s);

}

#include "stdio.h"

void delnum(char s[])

{

int i,j;

for(i=0,j=0;s[i]!='\0';i++)

if(s[i]<'0'||s[i]){s[j]=s[i];j++;}

s[j]='\0';

}

void main()

{

char s[80];

gets(s);

delnum(s);

printf("\n%s\n",s);

}

21、以下程序实现在屏幕上显示指定文本文件(文件名为:

c:\abc.dat)内容的功能。源程序中前面标有星号的行有错误,请改正之。源程序存入test3.c。

* include “stdio.h”

void main()

* { file *p;

char c;

* if((p=open(“c:\\abc.dat”,”w”))==NULL) { printf(“can not open the file\n”);

return;

}

while(!feof(p))

{c=fgetc(p);

* getchar( c);

}

}

22、在下面程序中,函数 f 的功能是求无符号整数

num各位数字之积。请输入程序并改正程序中带

“*”的行中的错误,使它能够正确地输出结果。

源程序存入test31.c 。

# include “stdio.h”

unsigned f( unsigned num)

* { unsigned k=0;

do

* { k*=num/10;

* num%=10;

}while (num);

return(k);

}

void main( )

{ int x=35,y=550;

printf(“%d,%d\n”,f(x),f(y));

}

23、如下程序使x与y变量之值进行交换。请输入程序

并改正程序中带“*”的行中的错误,使它能够正确

地输出结果。源程序存入test32.c 。

# include “stdio.h”

void main()

{ void swap(int *p1,int *p2);

int x,y,*ptr1,*ptr2;

scanf(“%d,%d”,&x,&y);

printf(“%d\t%d\n”,x,y);

* p1=&x;

* ptr2=y;

* swap(*ptr1,*ptr2);

printf(“%d\t%d\n”,x,y);

}

void swap( int *p1,int *p2)

{ int temp;

temp=*p1;*p1=*p2;*p2=temp;

}

24、以下程序是求取矩阵A的两条对角线上元素之和。请

输入程序并改正程序中带“*”的行中的错误,使它能够正

确地输出结果。源程序存入test33.c 。

# include “stdio.h”

void main()

{ int a[3][3]={1,2,3,4,5,6,7,8,9},i,j;

* int sum1=0;

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

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

if(i==j) sum1=sum1+a[i][j];

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

* for(j=2;j>=0;j++)

* if(i==j) sum2=sum2+a[i][j];

printf(“sum1=%d,sum2=%d\n”,sum1,sum2);

}

25、以下程序是求a数组中偶数的个数和偶数的平均值。请

输入程序并改正程序中带“*”的行中的错误,使它能

够正确地输出结果。源程序存入test34.c 。

# include “stdio.h”

void main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10},k,i;

float s=0,ave;

for(k=i=0;i<10;i++)

{ if (a[i]%2!=0)

* break;

s+=a[i],k++;

}

* if(k=0)

{ ave=s/k;

* printf(“%f,%d\n”,k,ave);

}

}

26、以下程序功能是删除一个字符串中的所有空格。请输入程序并改正程序中带“*”的行

中的错误,使它能够正确地输出结果。源程序存入test35.c 。

# include “stdio.h”

# include “string.h”

void main( )

{ char *fun(char *ste);

char s[81],*ds;

printf(“please enter a string:”);

gets(s);

ds=fun(s);

* printf(“\nresult:%s\n”,*ds);

}

* char fun(char *str)

{ char *p=str;

while(*p)

* { if(*p=’‘)

strcpy(p,p+1);

else

p++;

}

return str;

}

27、在下面程序中,函数cmp的功能是比较字符串s和t 的

大小,当s等于t时返回0,否则返回s和t中的第一个

不同字符ASCII码差值。请输入程序并改正程序中带“*”

的行中的错误,使它能够正确地输出结果。源程序存入

test36.c 。

# include “stdio.h”

* int my_cmp(char s, char t)

{ while(*s==*t)

* { if (*s) return(0);

++s,++t;

}

return my_cmp=*s-*t;

}

void main( )

{ char s1[80],s2[80];

gets(s1);

gets(s2);

* if (s1==s2)

printf(“EQ\n”);

else

printf(“not EQ\n”);

}

28、下面程序的功能是输入一个字符串并将其中从左往右第一个最大的字符与最后一个字

符交换。如:“imaastudent123”,交换后为:“imaast3dent12u”。请输入程序并改正程序中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test37.c 。

# include “stdio.h”

void main( )

{ char s[80],max;

int i,k;

* getchar(s);

max=s[0];

k=0;

* for( i=0;s[i]!=’\n’;i++)

* if(s[i]>s[0])

max=s[i],k=i;

if(k!=i-1)

* s[k]=s[i-1],s[k]=max;

puts(s);

}

29、已知数据文件a.dat 中存放有若干个(超过10个)

整数,以下程序的功能是:计算文件a.dat中前10

个数的和并将求和结果存入文件a.dat的尾部。请输

入程序并改正程序中带“*”的行中的错误,使它

能够正确地输出结果。源程序存入test38.c 。

# include “stdio.h”

void main( )

* { File *fp1,*fp2;

* int s,a,i;

if((fp1=fopen(“a.dat”,”r”))==NULL)

{ printf(“ can not open the file”);

Return

{

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

* { fscanf( fp1,”%d”,a);

s+=a;

}

fclose(fp1);

if((fp2=fopen(“a.dat”,”a”))==NULL)

{ printf(“ can not open the file”);

return;

}

* printf(“%d”,s);

fclose(fp2);

}

30、下面的程序通过average计算数组中各元素的平均值。请

输入程序并改正程序中带“*”的行中的错误,使它能够

正确地输出结果。源程序存入test39.c 。

# include “stdio.h”

float average (int *pa,,int n)

{ int x;

float avg =0;

for(x=0;x

* avg=avg+pa+x ;

avg=avg/n;

return avg;

}

void main( )

{ int a[5]={2,4,6,8,10};

float mean;

* mean=average(*a,5);

* printf(“mean=%ld\n”,mean);

}

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语言期末上机考试题及答案

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语言上机考试题目

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语言上机考试经典试题(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语言上机考试训练题库及答案

上机考试习题集 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语言上机题库

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语言程序设计课程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语言上机作业试题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): 要求:

大学本科C语言上机考试题

C语言程序设计上机考试题 班级:姓名:学号: 使用C语言编写下列程序(20分×5=100分) 1、输入3个整型数据,求出最大数和最小数。 #include int main() {inta,b,c,e,d,f,g; printf("请输入三个数\n"); scanf("%d,%d,%d",&a,&b,&c); d=(a>b?a:b); e=(d>c?d:c); printf("Max is %d\n",e); f=(a int main() {float score; char grade; printf("请输入学生成绩:"); scanf("%f",&score); while(score>100||score<0)); {printf("\n输入有误,请输入); scanf("%f",&score); } switch((int)(score/10)) {case 10: case 9:grade='A';break; case 8:grade='B';break; case 7:grade='C';break; case 6:grade='D';break;

case 5: case 4: case 3: case 2: case 1: case 0:grade='E'; } printf("成绩是%5.1f,相应的等级是%c\n",score.grade); return 0; } 3、编写一个四则运算程序,输出计算结果。 #include int main() {intc,d,e; floata,b,f; printf("请输入两个数"); scanf("%f,%f",&a,&b); c=a+b; d=a-b; e=a*b; f=a/b; printf("加法结果为%d\n",c); printf("减法结果为%d\n",d); printf("乘法结果为%d\n",e); printf("除法结果为%f\n",f); return 0; } 4.100以内的素数 从键盘输入一个正整数,判断该整数是否为素数。 #include int main() { intn,i; printf("\n"); scanf("%d",&n); for (i=2;i<=n-1;i++) if(n%i==0) break; if(i

历年全国计算机等级考试-二级C语言上机考试题库及答案

1.填空 给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.c中 不得增行或删行,也不得更改程序的结构! void check(); /**********found**********/ int fun(___1___ *std) { /**********found**********/ ___2___ *fp; int i; if((fp=fopen("myfile5.dat","wb"))==NULL) return(0); printf("\nOutput data to file !\n"); for(i=0; i

c语言上机考试题

上机考试:6月2日 13:30 不准携带:课本/参考书/参考资料/移动存储设备/草纸 一定要带:学生证/签字笔 1 用起泡法对N=10个整数由大到小排序。10个整数由键盘输入,排序后从屏幕输出结果 2 编写一函数,从实参传来一个字符串,分别统计其中数字、大写字母、小写字母和其它字符的个数,输入输出在main函数中完成 3 用一函数inv将一个字符串的字符逆序排列。输入输出在main函数中完成。要求在inv中用指针处理。4 求200之内的素数的和。从屏幕输出结果 5 从屏幕输入一行字符,将所有的大写字母转换为小写字母,所有的小写字母转换为大写字母,其它字符不变,从屏幕输出结果 6 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次落地后又反弹多高? 7 对N=20个字符由大到小排序。20个字符由键盘输入,排序后从屏幕输出结果 8 有一字符串,把其中的字母a和A去掉,成为一个新字符串。原字符串从键盘输入。从屏幕输出结果 9 求Fibonacci数列的前30项的和。从屏幕输出结果。Fibonacci数列为: F(1)=1,(n=1) F(2)=1,(n=2) F(n)=F(n-2)+F(n-1),(n>=3) 10 写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串 11 从键盘输入一个大于2的整数,判断是否是素数。从屏幕输出结果。要求用函数处理 12 从键盘输入月份,输出这个月有多少天。要求用函数处理 13 求两个数的最大公约数。要求用函数处理 14 求两个数的最小公倍数。要求用函数处理 15 从屏幕输入3个整数,按从小到大顺序输出,要求用指针进行处理 16

10-11(1)C语言选修上机考试复习题

一、单项选择题 略 二、改错题(典型题型) 1、在考生文件夹下,给定程序MODI.C的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为:7654321时,t中的数为:7531。请修改并运行该程序,然后将源程序文件MODI.C上传。 #include main( ) { long s, t, sl=10; system(“CLS”); printf("\nPlease enter s:"); scanf("%ld", &s); /************found************/ t = s / 10; while ( s > 0) { s = s/100; t = s%10 * sl + t; /************found************/ sl = sl*100; } printf("The result is: %ld\n", t); } 2、在考生文件夹下,给定程序MODI.C的功能是:求一维数组a中的值为偶数的元素之和。例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9 ,程序的输出应为:The result is: 62 请修改并运行该程序,然后将源程序文件MODI.C提交。 #include #include main() { int a[10]={10,4,2,7,3,12,5,34,5,9},i,s; system(“CLS”); s = 0; for ( i=0; i<10; i++) /************found************/ if (i % 2 == 0) s = s + a[i]; /************found************/ print("The result is: %d\n", s); } 3、在考生文件夹下,给定程序MODI.C的功能是:求一维数组a中值为偶数的元素之和。例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9 ,程序的输出应为:The result is: 62。请修改并运行该程序,然后将源程序文件MODI.C提交。

大学本科C语言上机考试题

C语言程序设计上机考试题 班级::学号: 使用C语言编写下列程序(20分×5=100分) 1、输入3个整型数据,求出最大数和最小数。 #include int main() {int a,b,c,e,d,f,g; printf("请输入三个数\n"); scanf("%d,%d,%d",&a,&b,&c); d=(a>b?a:b); e=(d>c?d:c); printf("Max is %d\n",e); f=(a int main() {float score; char grade; printf("请输入学生成绩:"); scanf("%f",&score); while(score>100||score<0)); {printf("\n输入有误,请输入); scanf("%f",&score); } switch((int)(score/10)) {case 10: case 9:grade='A';break; case 8:grade='B';break; case 7:grade='C';break; case 6:grade='D';break;

case 5: case 4: case 3: case 2: case 1: case 0:grade='E'; } printf("成绩是%5.1f,相应的等级是%c\n",score.grade); return 0; } 3、编写一个四则运算程序,输出计算结果。 #include int main() {int c,d,e; float a,b,f; printf("请输入两个数"); scanf("%f,%f",&a,&b); c=a+b; d=a-b; e=a*b; f=a/b; printf("加法结果为%d\n",c); printf("减法结果为%d\n",d); printf("乘法结果为%d\n",e); printf("除法结果为%f\n",f); return 0; } 4.100以的素数 从键盘输入一个正整数,判断该整数是否为素数。 #include int main() { int n,i; printf("\n"); scanf("%d",&n); for (i=2;i<=n-1;i++) if(n%i==0) break; if(i

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的一个实根。 迭代步骤如下:(1)取x1初值为;(2)x0=x1,把x1的值赋各x0; ( (3)x1=cos(x0),求出一个新的x1; (4)若x0-x1的绝对值小于,则执行步骤(5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出root=。 11: 第11题下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能是:使数组左下半三角元素中的值全部置成0。 12: 第12题下列程序定义了n×n的二维数组,并在主函数中赋值。请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 13: 第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数

全国计算机等级考试C语言上机考试题库 套

2017年全国计算机等级考试C语言上机考试题库 学生练习用第41套至第60套 第四十一套 1、程序填空 下列给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。 例如,若s所指字符串为:"asd123fgh543df",处理后新字符串为:"asdfghdf123543"。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序在文件中。 不得增行或删行,也不得更改程序的结构! ----------------------------------------------------------------------------------------------------------------- #include <> #include <>

#include <> char *fun(char *s) { int i, j, k, n; char *p, *t; n=strlen(s)+1; t=(char*)malloc(n*sizeof(char)); p=(char*)malloc(n*sizeof(char)); j=0; k=0; for(i=0; i='a')&&(s[i]<='z'))||((s[i]>='A')&&(s[i]<='Z'))) { /**********found**********/ t[j]=__1__; j++;} else { p[k]=s[i]; k++; } } /**********found**********/

大学C语言期末上机考试题库【精品】

上机考试练习题 1、程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 \ { int repeat, ri; double x, y; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%lf", &x); /*---------*/ if(x!=0) y=1/x; else y=0; printf("f(%.2f) = %.1f\n", x, y); } } 20022程序填空,不要改变与输入输出有关的语句。 输入华氏温度,输出对应的摄氏温度。计算公式:c = 5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。 输入输出示例:括号内为说明 输入 150 (fahr=150) 输出 celsius = 65 #include int main(void)

{ int celsius, fahr; /*---------*/ scanf(“%d”,&fahr); celsius=5.0*(fahr-32)/9; printf("celsius = %d\n", celsius); } 20023程序填空,不要改变与输入输出有关的语句。 输入存款金额 money、存期 year 和年利率 rate,根据下列公式计算存款到期时的利息 interest(税前),输出时保留2位小数。 interest = money(1+rate)^year - money 输入输出示例:括号内为说明 输入 1000 3 0.025 (money = 1000, year = 3, rate = 0.025) 输出 interest = 76.89 #include #include int main(void) { int money, year; double interest, rate; /*---------*/ scanf(“%d%d%lf”,&money,&year,&rate); interest=money*pow((1+rate),year)-money; printf("interest = %.2f\n", interest); } 20024程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0= 0时,f(x) = x^0.5,当x小于0时,f(x) = (x+1)^2 + 2x + 1/x。 输入输出示例:括号内是说明 输入 3 (repeat=3) 10 -0.5

计算机考试二级C语言上机试题下[13]

计算机考试二级C语言上机试题下[13] 第 43套 试题说明 *********************************** 第一题(30分) 给定程序BLANK1.C是建立一个带头结点的单向链表, 并用随机函数为各结点 赋值。函数fun的功能是将单向链表结点 (不包括头结点)数据域为偶数的值累加起来, 并且作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! *********************************** 第二题(30分) 给定程序MODI1.C中fun函数的功能是: 读入一个整数m,计算如下公式的值。 1 1 1 1 t = 1 + ----- +----- + ----- + ......+ ----- 2 3 4 m 例如, 若输入 5, 则应输出 2.283333。 请改正程序中的错误或在横线处上填上适当的内容并把横线删除, 使它能计 算出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! *********************************** 第三题(40分) 程序的功能是: 删除一个字符串中指定的字符。 设有如下的字符串: turbo c and borland c++ 从键盘上输入任一个字符, 然后从上述字符串中删除该字符(有几个删除几

个)。 例如输入字符n, 则删除后变为: turbo c ad borlad c++ 如果输入了字符串中不存在的字符, 则字符串照原样输出。同一字母的大、 小按不同字符处理。删除字符的操作通过一个函数来实现,请编写该函数的代码。注意: 部分源程序存在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。

7-8-C语言上机考试试题2

C语言上机考试试卷-2 2008.1.7 一、选择题(评分标准20 分,每小题2分) 1. 执行语句“a=b=3; printf(“%d,%d\n”, a<<2, b>>2);”后的输出结果为___A_____。 (A)12,0 (B)12,3 (C)false,true (D)true,false 2^3+2^2=12 ★2. 若a是32位int整型变量,判断其最低2个二进位均为1的表达式为____A____。 位与运算,11得1,a的32位与3的32位,不足则补零。补它十几个零 (A)a&3==3 (B)a&3==11 (C)a&11==3 (D)a&11==11 3. 以“只读”方式打开文本文件c:\xy.text,下列语句中哪一个是正确的___B_____。 (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”); 4. 为表示“a和b都不等于0”,应使用的C语言表达式是____D___。 (A)(a!=0) ‖(b!=0) (B)a‖b (C)!(a=0)&&(b!=0) (D)a&&b 5. 若x是单精度实型变量,k是基本整型变量,以下正确的输入语句是___A_____。 (A)scanf(“%f%d”, &x,&k); (B)scanf(“%f%d”, x,k); (C)scanf(“%d%f”, &x,&k) (D)scanf(“%d%f”, x,k); 6. 下列运算中优先级最低的是___C_____。 (A)* (B)<< (C)=(D)-> 7. 已知字符…c?的ASC II为99,语句printf(“%d,%c”, …c?, …c?+1);输出为_____C___。 (A)99,c (B)99, 100 (C)99,d (D)语句不合法 8. 不正确的赋值或赋初值的方式是____D____。 (A)char str[6]={…s?,?t?,?r?, ?i?,?n?,?g?}; (B)char str[10]=”string” 定义阶段可以 (C)char *str=”string”; (D)char str[10]; str=”string”;"字符串不能直接赋值 9. C 语言程序中可以对程序进行注释,注释部分必须用符号____C_____括起来。 (A)…{… 和?}? (B)…[…和?]? (C)“/*”和”*/” (D)“*/”和”/*” 10. ____D____是合法的用户自定义标识符。 (A)b-b (B)float (C) (D)_isw必须是字符开头如果是数字就不可以了

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