a[j+1])t=a[j],a[j]=a[j+1],a[j+1]=t;}}printf("Thethreedatafromsmalltobig" />
当前位置:文档之家› C语言上机试题答案

C语言上机试题答案

C语言上机试题答案
C语言上机试题答案

//vc1

//prog1.cpp

//设计一个程序,从键盘输入三个整数,按由小到大的顺序输出。#include"stdio.h"

main()

{

int a[3],i,j,t;

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

{

scanf("%d",&a[i]);

}

for(i=0;i<9;i++) /*此处的i可以小于任意一个大于6的整数*/

{

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

{

if(a[j]>a[j+1])

t=a[j],a[j]=a[j+1],a[j+1]=t;

}

}

printf("The three data from small to big is:");

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

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

}

//vc1

//prog2.cpp

//求1+3+5+...+95+97+99的和。

#include"stdio.h"

main()

{

int i,sum=0;

for(i=1;i<100;i=i+2)

sum+=i;

printf("1+3+5+....+99=%d\n",sum);

}

//vc1

//prog3.cpp

//写一个函数,从键盘输入一个整数,如果该整数为素数,则输出“此

整数为素数”,否则输出“整数非素数”。(注:要求从主函数输入整数)#include"stdio.h"

main()

{

int i,j,k,l=2;

printf("输入一个大于3的整数:");

scanf("%d",&i);

for(j=2;j

{

k=i%j;

if(k==0) break;

else l++;

}

if(l==k)

printf("这是个素数!!\n");

else

printf("这不是素数!!\n");

}

//vc2

//prog1.cpp

//从键盘输入10个整数,保存在一个数组中,将这10个数逆序输出,然后求这10个数的和然后输出。

#include"stdio.h"

main()

{

int a[10],i,sum=0;

printf("输入10个整数:");

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

scanf("%d",&a[i]);

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

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

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

sum+=a[i];

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

}

//vc2

//prog2.cpp

//输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。

#include

#include

void main()

{

char a[100][100]={0},b[100]={0};

int n,i,j;

for(n=0;n<100;n++)

{

gets(a[n]);

if(a[n][0]=='0')

break;

}

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

for(j=0;j

{

if(strcmp(a[j],a[j+1]))

{

strcpy(b,a[j]);

strcpy(a[j],a[j+1]);

strcpy(a[j+1],b);

}

}

for(i=0;i

puts(a[i]);

}

//vc2

//prog2.cpp

//输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。

#include

#include

void main()

{

char a[100][100]={0},b[100]={0};

int n,i,j;

for(n=0;n<100;n++)

{

gets(a[n]);

if(a[n][0]=='0')

break;

}

for(i=1;i

for(j=0;j

{

if(strcmp(a[j],a[j+1])>0)

{

strcpy(b,a[j]);

strcpy(a[j],a[j+1]);

strcpy(a[j+1],b);

}

}

for(i=0;i

puts(a[i]);

}

//vc2

//prog3.cpp

/*某年级共有4个班,每班各有30名学生,

有6个科目的考试成绩,要求输出每门课程最高分的学生、

学号和姓名,并计算各班每个学生的平均成绩并输出。*/

#include

#define cla 4

#define stu 30

#define sub 6

main()

{

int i,j,k,m,n,h;

float a[cla][stu][sub],ave[cla][stu],t,max;

for(i=0;i

{

for(j=0;j

{

t=0;

for(k=0;k

{

printf("请输入第%d个班学号为%d的学生的第%d 科的成绩\n",i+1,j+1,k+1);

scanf("%f",&a[i][j][k]);

t=t+a[i][j][k];

}

ave[i][j]=t/sub;

}

}

for(k=0;k

{

max=0.0;

for(i=0;i

{

for(j=0;j

{

if(a[i][j][k]>max)

{

max=a[i][j][k];

m=i,n=j,h=k;

}

}

}

printf("第%d科成绩的最高分是第%d个班学号为%d的人,成绩为%f",h+1,m+1,n+1,max);

}

for(i=0;i

{

for(j=0;j

{

printf("第%d班学号为%d的学生的平均分为%f",i+1,j+1,ave[i][j]);

}

}

}

//vc3

//prog1.cpp

//求从键盘上输入的10个数据(实数)中的最大值,并求和。

#include

main()

{

int a[10],i,m=0,s=0;

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

{

scanf("%d",&a[i]);

if(m

m=a[i];

s+=a[i];

}

printf("最大值是%d\n总和是%d\n",m,s);

}

//vc3

//prog2.cpp

//给出三角形的三边A,B,C,求三角形的面积。(应先判断三边是否构成三角形)

#include

#include

int check(float a,float b,float c)

{

int j;

if((a+b>c)&&(a-b

j=1;

else j=0;

return j;

}

main()

{

float a,b,c;

float s,p;

scanf("%f%f%f",&a,&b,&c);

if(check(a,b,c))

{

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

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

}

else

printf("不能构成三角形");

}

//vc3

//prog3.cpp

//编写程序求一个字符串的第n个字符开始、长度为m的子串

#include

main()

{

char a[100],b[100]={'0'};

int m,n,i,j;

gets(a);

printf("请输入首位数,位数\n");

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

for(i=m-1,j=0;i

b[j]=a[i];

puts(b);

}

//vc4

//prog1.cpp

//猜数游戏,假如设定一个整数m=123,然后让其他人从键盘上猜该数字,如果猜对,输出“RUGHT”,如果猜错,则输出“WRONG”,并且指出设定的数字比输入的数字大还是小

#include

main()

{

int m=123,a;

while(1)

{

printf("请输入您的猜测:\n");

scanf("%d",&a);

if(a==m)

{

printf("RIGHT");

break;

}

else

{

printf("WRONG");

if(a>m)

printf("\n该数字比您输入的小!");

else

printf("\n该数字比您输入的大!");

}

}

}

//vc4

//prog2.cpp

//编写程序,用于统计从键盘输入的字符串中的元音字母的个数。#include

#include

main()

{

char a[100];

int i,s=0;

gets(a);

for(i=0;i

{

if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'||a[i]=='A'||a[i]=='E'||a[ i]=='I'||a[i]=='O'||a[i]=='U')

s++;

}

printf("%d",s);

}

//vc4

//prog3.cpp

//编写程序求1-100中所有同构数的个数(一个自然数的平方的末几位与该数相同时,该数就为同构数,如25^2=625)

#include

main()

{

int i,j=0;

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

{

if((i*i)%1000%100==i||(i*i)%1000%100%10==i)

{printf("%d ",i);

j++;}

}

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

}

//vc5

//prog1.cpp

//从键盘接受一个整数X,判断X是否为含有因子7的整数,如是,则输出“YES”,否则输出“NO”

#include

main()

{

int x;

scanf("%d",&x);

if(x%7||x==0)

printf("NO");

else

printf("YES");

}

//vc5

//prog2.cpp

//编写一个密码检测的程序,在执行程序时,要求用户输入密码(标准密码自己预先设定),然后通过字符串比较函数比较输入密码和标准密码是否相等,若当等,则显示“口令正确”,并转去执行后续程序,若不想等,重新输入,3次都不相等则终止程序的执行。要求自己编写一个字符串比较函数,而不使用系统的strcmp函数。

#include

#include

#include

int cmp(char a[],char b[])

{

int i,j,n;

i=strlen(a)>strlen(b)?strlen(a):strlen(b);

for(n=0;n

{ if(a[n]==b[n])

j=1;

else

j=0;

}

return j;

}

main()

{

char a[100],b[100];

int i;

printf("请设定密码:\n");

gets(a);

system("CLS");

system("PAUSE");

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

{

printf("请输入密码:\n");

gets(b);

if(cmp(a,b))

{

printf("口令正确!");

break;

}

else

{

printf("口令错误!您还有%d次机会!",2-i);

}

}

}

//vc5

//prog3.cpp

//编写实现求1!+2!+...+10!.

#include

int fun(int n)

{

long i,s=1;

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

s*=i;

return s;

}

main()

{

int i,n=0;

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

n+=fun(i);

printf("1!+2!+...+10!=%d",n);

}

//vc6

//prog1.cpp

//编写程序,能对一给定的3*4的矩阵,求出其中的最大元素之及所在的行列号。

#include

main()

{

int a[3][4]={{23,4,15,98},{122,-3441,29,33},{123,1,-99,21}};//这里自己修改

int i,j,s=a[0][0],m=0,n=0;

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

{

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

printf("%d\t",a[i][j]);

printf("\n");

}

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

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

{

if(s

s=a[i][j],m=i,n=j;

}

}

printf("最大元素是%d,位于第%d行第%d列",s,m+1,n+1);

}

//vc6

//prog2.cpp

//求2000中含有5的因子的个数。

#include

main()

{

int i,j,k,m,s=0;

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

{

if(2000%i==0)

{

m=i;

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

{

if(m%10==5)

{s++;break;}

else

m=m/10;

}

}

}

printf("%d",s);

}

//vc6

//prog3.cpp

//求任意一个小于65535的正整数的逆序数,并判断该数是否为回文数。

#include

#include

main()

{

char a[100],b[100]={'0'};

int i,m;

printf("请输入一个小于65535的正整数\n");

gets(a);

m=strlen(a);

for(i=0;i

b[m-i-1]=a[i];

puts(b);

if(strcmp(a,b)==0)

printf("该数是回文数\n");

else

printf("该数不是回文数\n");

}

//vc7

//prog1.cpp

//给出一个不多于5位的正整数,要求:求出其位数,分别打印每一

位数字,最后按逆序打印出这个正整数

#include

#include

main()

{

char a[100],b[100]={'0'};

int i,m;

printf("请输入一个小于5位的正整数\n");

gets(a);

m=strlen(a);

for(i=0;i

{

printf("%c ",a[i]);

b[m-i-1]=a[i];

}

puts(b);

}

//vc7

//prog2.cpp

//求一个4行4列矩阵主对角线元素之和。

#include

main()

{

int i,j,m=0,a[4][4]={1,23,7,-12,56,1,12,-88,34,177,1,46,14,56,-89,1};

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

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

{

printf("%d\t",a[i][j]);

if(i==j)

m+=a[i][j];

}

printf("\n");

}

printf("主对角线元素之和是%d\n",m);

}

//vc7

//prog3.cpp

//编写一个程序,判断从键盘输入的两个字符串是否相同,若相同则输出“字符串相同”,否则输出“字符串不同”。

#include

#include

main()

{

char a[100],b[100];

printf("请输入字符串1:\n");

gets(a);

printf("请输入字符串2:\n");

gets(b);

if(strcmp(a,b)==0)

printf("字符串相同!");

else

printf("字符串不同!");

}

//vc8

//prog1.cpp

//输出100-200之间,能被3整除,但是不能被7整除的数。#include

main()

{

int i;

for(i=100;i<=200;i++)

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

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

}

//vc8

//prog2.cpp

//将一个月份数字转换成月份的英文名称.

#include

main()

{

int i;

printf("请输入月份(1-12):\n");

scanf("%d",&i);

switch(i)

{

case 1:printf("January\n");break;

case 2:printf("February\n");break;

case 3:printf("March\n");break;

case 4:printf("April\n");break;

case 5:printf("May\n");break;

case 6:printf("June\n");break;

case 7:printf("July\n");break;

case 8:printf("August\n");break;

case 9:printf("September\n");break;

case 10:printf("Octobery\n");break;

case 11:printf("November\n");break;

case 12:printf("December\n");break;

default:printf("error!\n");break;

}

}

//vc8

//prog3.cpp

//编写一程序,用简单选择排序实现对五个整数的排序(从小到大),排序的思路:首先从n个整数中选出值最大的,将它交换到第一个元素位置,再从剩余的n-1个整数中选出值最大的整数,将它交换到第二个元素的位置,重复上述操作直到排序成功.

#include

main()

{

int i,j,temp1,temp2,a[5]={542,-14,90,-18,83};

printf("排序之前的数组为: ");

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

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

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

{ temp1=a[i];

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

{

if(temp1>a[j])

{

temp1=a[j];

a[j]=a[i];

a[i]=temp1;

}

}

}

printf("\n排序后的数组为: ");

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

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

}

//vc9

//prog1.cpp

//编写一个程序,实现从键盘输入一组数据,求该组整数的平均值,并将大于平均值的整数输出.

#include

main()

{

int a[100],i,sum=0,n;

double avg;

printf("请输入您要输入的数据个数,按Enter结束\n");

scanf("%d",&n);

printf("请输入数据:\n");

for(i=0;i

{

scanf("%d",&a[i]);

sum+=a[i];

}

avg=sum/n;

printf("该组数据的平均值是:%6.2f\n",avg);

for(i=0;i

{

if(a[i]>avg)

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

}

}

//vc9

//prog2.cpp

//编写程序,输出形状为直角三角形的九九乘法表.

#include

main()

{

int i,j;

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

{

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

printf("%d*%d=%d ",j,i,i*j);

printf("\n");

}

}

//vc9

//prog3.cpp

//编写一个程序,判断某字符串在主串中出现的次数,字符串及主串均从键盘输入,例如主串为"asdas as d as",字符串为"as",则出现4次.

#include

#include

main()

{

char a[100],s[100];

int i,j,flag,sum=0;

printf("请输入主串\n");

gets(a);

printf("请输入子串\n");

gets(s);

for(i=0;i

{ flag=0;

for(j=0;j

{

if(s[j]==a[i+j])

flag++;

}

if(flag==strlen(s))

sum++;

}

printf("%d",sum);

}

//vc10

//prog1.cpp

//从键盘输入一学生的成绩,判断学生成绩等级,如果成绩在90-100,等级为A,成绩在80-89,成绩为B,成绩在70-79,等级为C,成绩在60-69,等级为E,成绩小于60,等级为E.

#include

main()

{

int i;

printf("请输入学生成绩(0-100):\n");

scanf("%d",&i);

if(i>=100||i<=0)

printf("ERROR!\n");

else

{

switch(i/10)

{

case 9:printf("A\n");break;

case 8:printf("B\n");break;

case 7:printf("C\n");break;

case 6:printf("D\n");break;

default:printf("E\n");break;

}

}

}

//vc10

//prog2.cpp

//输出100-1000间的全部素数;

#include

main()

{

int i,j,s;

for(i=100;i<=1000;i++)

{

for(j=2;j

if(i%j==0) break;

if(j==i/2)

printf("%d ",i);

}

}

//vc10

//prog3.cpp

//编写程序,求出从键盘输入的字符串的长度(不能使用strlen()函数,要求用指针的知识.)

#include

#include

int len(char a[])

{

int i;

char *p=a;

for(i=0;i<10000;i++,*p++)

{ if(*p=='\0')

break;

}

return i;

}

void main()

{

char a[1000];

gets(a);

printf("字符串长度为%d",len(a));

}

//vc11

//prog1.cpp

//在主函数中从键盘输入若干个整数放入数组中,用0结束输入,并放在最后一个元素中,下列程序中,fun函数的功能是:计算数组元素中值为正整数的平均值(不含0),

//例如:数组中的元素中的值依次为39,-47,21,2,-8,15,9;则程序的运行结果为19.250000.请改编fun函数,使他能得出正确的结果. #include

#include

double fun (int x[])

{

int i,j=0;

double s=0;

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

{

if(x[i]>0)

{

s+=x[i];

j++;

}

}

return s/j;

}

main()

{

int x[1000],int i=0;

printf("\nPlease enter some data (end with 0): ");

do

{ scanf("%d",&x[i]);}while(x[i++]!=0);

printf("%f\n",fun(x));

}

//vc11

//prog2.cpp

//编程,将一个数字字符串转换成一个整数(不得调用c语言提供的将字符串转换为整数的函数.)例如,若输入字符串"-1234",则函数把它转换成整数值-1234.

#include

#include

int change(char a)

{

int i;

switch(a)

{

case '0':i=0;break;

case '1':i=1;break;

case '2':i=2;break;

case '3':i=3;break;

case '4':i=4;break;

case '5':i=5;break;

case '6':i=6;break;

case '7':i=7;break;

case '8':i=8;break;

case '9':i=9;break;

}

return i;

}

int fun(char x[])

{

int i,j,k,n,s,m=0;

if(x[0]=='-')

{i=1;j=-1;k=strlen(x);}

else

{i=0;j=1;k=strlen(x);}

for(i;i

{

s=change(x[i]);

for(n=0;n

s*=10;

m+=s;

}

return m*j;

}

main()

{

char a[100];

gets(a);

printf("\n%d",fun(a));

}

}

//vc11

//prog3.cpp

//百马驮担问题,有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,编程计算有多少种驮法.

#include

void main()

{

int b,m,l,i;

for(b=0;b<=33;b++)

for(m=0;m<=50;m++)

{

l=100-b-m;

If((b*3+m*2+l/2==100)&&(l%2==0))

printf("大马为%d匹,中马为=%d匹,小马为=%d匹,总驮担%d担\n",b,m,l,b*3+m*2+l/2);

}

}

//vc12

//prog1.cpp

//编写fun函数,它的功能是:根据以下公式求P的值,结果由函数值带回,m与n为两个正整数且要求m>n.P=m!/n!(m-n)!

#include

#include

float fun(int m,int n)

{

int i;

float s1,s2,s3;

s1=s2=s3=1;

if(m>n)

{

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

s1*=i;

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

s2*=i;

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

s3*=i;

}

return s1/(s2*s3);

}

main()

{

printf("p=%f\n",fun(12,8));

}

//vc12

//prog2.cpp

//求出1到1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并求这些数的个数.

#include

main()

{

int i,s;

for(i=1,s=0;i<=1000;i++)

if((i%7==0||i%11==0)&&!(i%7==0&&i%11==0))

C语言试卷及答案

《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。

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

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"至U "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,计算结果作为函数值返回『通过形参 传入。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初值为0、0;⑵x0=x1,把x1的值赋各x0; (3) x1=cos(x0),求出一个新的x1; (4) 若x0-x1的绝对值小于0、000001,则执行步骤(5),否则执行步骤(2); (5) 所求x1就就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出root=0、739085。 11:第11题下列程序定义了nx n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能就是:使数组左下半三角元素中的值全部置成0。 12:第12题下列程序定义了n x n的二维数组,并在主函数中赋值。请编写函数fun,函数的 功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 13:第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt 指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。 14:第14题请别写函数fun,函数的功能使求出二维数组周边元素之与,作为函数值返回。二 维数组中的值在主函数中赋予。 15:第15题请编写一个函数unsigned fun(unsigned w),w 使一个大于10的无符号整数,若w 使n(n>2)位的整数,则函数求出w后n-1位的数作为函数值返回。 16:第16题请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树, 并对第三位进行四舍五入(规定h中的值位正数)。 17:第17题请编写一个函数fun(char *s),该函数的功能使把字符串中的内容拟置。 18:第18题编写程序,实现矩阵(3行3列)的转置(即行列互换)。 19:第19题编写函数fun,该函数的功能就是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。20:第20题编写函数int fun(int lim,int aa[max]),该函数的功能就是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。 21:第21题请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

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语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言上机实验[1]

实验四循环结构程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、熟练掌握while语句、do-while语句和for语句。 2、练习并掌握循环结构的嵌套形式。 3、掌握循环结构的程序设计方法。 三、实验内容:说明:前四题为必做题目,后两题为选做题目。 1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结 束输入。(实验指导书P41) 2、求所有的水仙花数。水仙花数是一个3位数的自然数,该数各位数的立方和等于该数 本身。(实验指导书P42) 3、判断输入的某个数是否为素数。若是,输出YES,否则输出NO。(实验指导书P167) 4、计算π的近似值。公式如下:π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小 于10-6为止。(实验指导书P169) 5、计算1!+2!+……+n! 的值,n值由键盘输入。(实验指导书P176) 6、输入10个整数,统计并输出其中正数、负数和零的个数。 四、实验答案:(代码+运行结果截屏) 实验五综合实验1:结构化程序设计(2学时) 一、实验方式:一人一机 二、实验目的: 1、进一步掌握选择结构、循环结构的编程特点。 2、掌握C语言的结构化程序设计思想。 3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。 三、实验内容:说明:前两题为必做题目,后两题为选做题目。 1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。设: 90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。(实验指导书P162) 2、百马百担问题。(实验指导书P45) 3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 4、输出如下图案: * *** ***** ******* ***** *** * 四、实验答案:(代码+运行结果截屏)

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初值为0.0; (2)x0=x1,把x1的值赋各x0; (3)x1=cos(x0),求出一个新的x1; (4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出root=0.739085。 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列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数

C语言全部题目及答案

C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H-

C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes?

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语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由

主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

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

C语言期末考试题含答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue

7.在while(!x)语句中的!x与下面条件表达式等价的是() A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include <> void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2B)2,2,1C)2,2,2D)2,2,3 9、有以下程序: #include <> void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m); B)k=fun(10,; C)fun(x,n); D)void fun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是(D )。 A. 软件是一种逻辑实体,具有抽象性 ~ B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于(D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 【 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件

A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 - A. 设计说明书 B. 需求规格说明书 C. 可行性分析报告 D. 用户手册 9. 以下关于数据流图的说法错误的是( c )。 A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B. 数据流图是用作结构化分析的一种工具 C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成 D. 数据流图的绘制采用自上向下、逐层分解的方法 10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( c )。 A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 11. 需求分析阶段的研究对象是( b )。 ¥ A. 系统分析员要求 B. 用户要求 C. 软硬件要求 D. 系统要求 12. 结构化方法的基本原则是( b )。 A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精 13. 耦合度最高的是(b)耦合。 A. 环境 B. 内容 C. 控制 D. 数据 14. 内聚程度较低的是( a )内聚。 A. 偶然 B. 通讯 C. 顺序 D. 时间 15. 对一个程序来说,组成系统的模块数目( b ),则开发成本越小。 A. 越多 B. 越少 C. 顺序 D. 时间> 16. 画软件结构图时应注意调用关系只能是(B )。 A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左 17. 程序流程图中的箭头代表( b )。 A. 数据流 B. 控制流 C. 顺序流 D. 调用 18. 软件测试是软件质量保证的重要手段,下述( B )是软件测试的最基础环节。

C语言上机综合实验一及答案

1、编制程序,输入n 个整数(n 从键盘输入,n>0),输出它们的偶数和。 2、 编程,输入n 后:输入n 个数,根据下式计算并输出y 值。 3、输入一行字符,统计并输出其中英文字母、数字字符和其他字符的个数。 4、编写程序,输入一个正整数n ,计算并输出下列算式的值。要求定义和调用函数total(n)计算1+1/2+1/3+……+1/n ,函数返回值的类型是double 。 5、输入一个正整数n ,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n 的阶乘,函数返回值的类型是单精度浮点型。 答案: 程序1、 #include void main () { int n,i,x,sum=0; while(scanf("%d",&n),n<=0); printf ("请输入%d 个数:", n); for (i=1; i<=n ;i++) { scanf("%d",&x); if(x%2==0) sum+=x; } printf ("sum=%d", sum) ; } 程序2、 #include #include void main( ) { int i,n; float x,y; scanf(“%d”,&n); for(i=1;i<=n;i++){ scanf(“%f”,&x); if(x<-2) y=x*x-sin(x); else if(x<=2) y=pow(2,x)+x; else y=sqrt(x*x+x+1); printf(“%f \n”,y); } } 程序3、 # include void main( ) { int letter,digit,other; ?????>++≤≤-+-<-=2 12222sin 22x x x x x x x x y x 111111...23n k s k n ===++++∑

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门课程的成绩,编写一个程序统计每一门课程有几个不及格的学生。

相关主题
文本预览