b&&a>c)printf("最大值为:%d",a);elseif(b>a&&b>c)printf("最大值为:%d",b);elseprintf("最大值为:%d",c);}2给出一百分制成绩,要求输出成绩等级‘A’、‘B’,‘" />
当前位置:文档之家› C上机复习题及答案 (1)

C上机复习题及答案 (1)

C上机复习题及答案 (1)
C上机复习题及答案 (1)

1有3个整数a,b,c,由键盘输入,输出其中最大的数.

#include

void main()

{

int a,b,c;

printf("输入三个数:");

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

if(a>b&&a>c)

printf("最大值为:%d",a);

else if(b>a&&b>c)

printf("最大值为:%d",b);

else

printf("最大值为:%d",c);

}

2给出一百分制成绩,要求输出成绩等级‘A’、‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89为‘B’,70~79为‘C’,60~69为‘D’,60分以下为‘E’。

#include

void main()

{

float grade;

scanf("%f",&grade);

if (grade>=90&&<=100)

printf("A");

else if(grade>=80&&<90)

printf("B");

else if("grade>=70&&grade<80)

printf("C");

else if(grade>=60&&<70)

printf("D");

else

printf(("E");

}

3. 输入两个正整数m和n,求其最大公约数和最小公倍数。(辗转相除法)

#include

main()

{

int a,b,m,n,temp;

printf("请输入两个整数:\n");

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

if(m

{

temp=m;

m=n;

n=temp;

}

a=m;b=n;

while(b!=0)

{

temp=a%b;

a=b;

b=temp;

}

printf("最大公约数是:%d\n",a);

printf("最小公倍数是:%d\n",n*m/a);

}

4、计算100至999之间有多少个数,其各位数字之和是5。例如:122、131是满足要求的数的两个例子。(穷举法)

#include

void main()

{

int num=100,s=0;

while (num<1000)

{

{

if((num/100+num%100/10+num%100%10)== 5)

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

s=s+1;

num++;

}

}

printf("输出满足条件的数字的个数:%d\n",s);

}

5.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。

#include

#include

void main()

{

int number;

for(number=100;number<1000;number++) {

if(pow(number/100,3)+pow(number%100/10,

3)+pow(number%100%10,3)==number) printf( “%d\n”,number);

}

}

6. 求Sn=a+aa+aaa+…+aa…a(n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。

#include

void main()

{

int s=0,i,a,n;

printf("请输入两个数:");

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

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

{

s=s+a;

a=10*a+a;

}

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

}

7求100~200间的全部素数。

#include

#include

void main()

{

int m,k,i,n=0;

int num=0;

for(m=101;m<=200;m=m+2)

{

k=sqrt(m);

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

{

if(m%i==0)

break;

}

if(i>=k+1)

{

printf("%d ",m);

n=n+1; num++;

if(n%5==0)

printf("\n");

}

}

printf("\n全部素数有:%d\n",num);

}

8.定义一个2*3矩阵,输入/输出数值#include

void main()

{

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

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

{

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

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

}

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

{

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

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

printf("\n");

}

}

9. 求一个3*3矩阵对角线元素之和。

#include

main()

{

int a[3][3],i,j,sum=0;

printf("请输入数组元素:(3*3)\n");

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

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

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

printf("\n");

printf("数组为:\n");

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

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

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

printf("\n");

}

printf("\n");

printf("对角线的和:\n");

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

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

if(i==j||2-i==j)

sum+=a[i][j];

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

}

10. 用二分法求下面方程在(-10,10)之间的根。

2x3-4x2+3x-6=0

#include

#include

void main()

{

float x0,x1,x2,f0,f1,f2;

do

{

printf("please enter x1 & x2:\n");

scanf("%f,%f",&x1,&x2);

f1=((2*x1-4)*x1+3)*x1-6;

f2=((2*x2-4)*x2+3)*x2-6;

}

while ((f1*f2)>0);

do

{

x0=(x1+x2)/2;

f0=((2*x0-4)*x0+3)*x0-6;

if ((f0*f1)<0)

{

x2=x0;

f2=f0;

}

else

{

x1=x0;

f1=f0;

}

}

while(fabs(f0)>=1e-5);

printf("the root of equation is :%f\n",x0);

}

11. 求Fibonacci数列前40个数。这个数列有如下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。即:F1=1 (n=1) F2=1 (n=2)

F n=F n-1+F n-2( n>=3)

#include

void main()

{

int a[40],i;

a[0]=1;a[1]=1;

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

{

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

}

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

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

}

12. 这是一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问每个月的兔子总数为多少?

#include

void main()

{

int a[40],i;

a[0]=1;a[1]=1;

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

{

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

}

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

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

}

13 用起泡法对十个数排序(由小到大)

#include

void main()

{

int a[10];

/*定义数组、变量,初始化*/

int i,j,t;

printf("input 10 numbers:\n");

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

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

printf("\n");

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

/*开始进行排序*/

for(i=0;i<9-j;i++)

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

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

printf("the sorted mumbers:\n");

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

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

printf("\n");

}

14.用选择法对输入的10个整数排序。#include

void main()

{

int a[10],i,j;

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

{

printf("请输入第%d个:",i+1);

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

}

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

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

if(a[i]

{

int k;

k=a[i];

a[i]=a[j];

a[j]=k;

}

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

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

}

15.写程序,判断某一年是否闰年。

#include

void main()

{

int year,leap;

printf("请输入一个年份:");

scanf("%d",&year);

if(year%4==0)

{

if(year%100==0)

{

if(year%400==0)

leap=1;

else

leap=0;

}

else

{

leap=1;

}

}

else

{

leap=0;

}

if(leap)

printf("%d是一个闰年",year);

else

printf("%d 不是一个闰年",year);

}

16.将一个二维数组行和列元素互换,存到另一个二维数组中

#include

void main()

{

int a[2][3]={{1,2,3},{4,5,6}};

int b[3][2],i,j;

printf("array a:\n");

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

{

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

{

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

b[j][i]=a[i][j];

}

printf("\n");

}

printf("array b:\n");

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

{

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

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

printf("\n");

}

}

17.有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

#include

void main()

{

int

a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int i,j,c,d,max;

max=a[0][0];

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

{

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

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

{

max=a[i][j];

c=i;

d=j;

}

}

printf("最大数是%d\n行号是%d\n列号是%d\n",max,c,d);

}

18.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

#include

void main()

{

char string[81]; /*定义一个字符型数组*/

int i,num=0,word=0; /*定义几个整型常量,i用来控制循环次数,num表示单词个数,word相当于一个标志*/

char c; /*定义一个字符型变量*/

gets(string); /*获取用户输入的一句话,在这句话的末尾系统会自动添加一个结束标志'\0'*/

for (i=0;(c=string [i] )!='\0';i++) /*从string[0]开始判断,只要它不是结束标志,就执行下面的语句*/

if(c==' ') /*判断当前字符是不是空格,比如I am a boy,第一个I不是空格,所以就不执行word=0,而执行下一句

判断word是不是等于0(word=0表示把0赋给word,word==0表示判断word等不等于0),显然是的,因为

开始时赋给word的值是0,所以执行语句:“把1赋给word;num++”,此时num为1。再判断第二个,是空格,

所以再把0赋给word。再判断第三个a,不是空格,所以执行else if(word==0),因为刚才把0赋给word了,

所以执行“把1赋给word;num++”,此时num为2,再判断第四个m,不是空格,但此时word为1,所以

else if(word==0)语句不再执行,可以看出word的目的就是防止num重复相加,此后以此类推*/

word=0;

else if(word==0)

{

word=1;

num++;

}

printf("There are %d words in the line. \n" , num);

}

19.用递归方法求n!。

#include

void main()

{

int num;

scanf("%lf",&num);

printf("%ld",jiecheng(num));

}

long jiecheng(int a)

{

long s;

int i;

for(i=1,s=1;i<=a;i++)

s=s*i;

return s;

}

20 有3个字符串,要求找出其中最大者

#include

#include

void main()

{

char string[20];

char str[3][20];

int i;

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

gets (str[i]);

if(strcmp(str[0],str[1])>0)

strcpy(string,str[0]);

else

strcpy(string,str[1]);

if(strcmp(str[2],string)>0)

strcpy(string,str[2]);

printf("最大的字符串是:\n%s\n",string);

}

21..打印出以下的杨辉三角形(要求打印出10行)。1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

#include

void main()

{

int i,j,k=2,n=3,a[60]={0,1,1,1};

while(n<55)

{

a[n+1]=1;

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

a[n+j]=a[n-k+j-1]+a[n-k+j];

a[n+k+1]=1;

k++;

n=n+k;

}

for(i=1,j=1,k=1;i<=55;i++)

{

printf(“%d,”,a[i]);

if(j++>=k)

{

printf(“\n”);j=1;

k++;

}

}

}

22、打印以下图案:

23、* * * * *

24、* * * * *

25、* * * * *

26、* * * * *

27、* * * * *

#include

void main()

{

int i,j,k;

j=5;

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

{

for(k=1;k<=i-1;k++)

{

printf(" ");

}

printf("* * * * *");

printf("\n");

}

}

23anoi(汉诺)塔问题。这是一个古典的数学问题,是一个只有用递归方法(而不可能用其他方法)解决的问题。问题是这样的:古代有一个梵塔,塔内有3个座A、B、C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上(图8.13)。有一个老和尚想把这64个盘子从A座移到C座,但每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过成中可以利用B座,要求编程序打印出移动的步骤。

程序如下:

# include

void main()

{

void hanoi(int n,char one,char two,char three); /*对hanoi函数的声

明*/

int m;

printf(“input the number of disker:”);

scanf(“%d”,&m);

printf(“The step to moveing %d

diskes:\n”,m);

hanoi(m,’A’,’B’,’C’);

}

void hanoi(int n,char one,char two,char three) /*定义hanoi函数*/

/*将n

个盘从one座借助two座,移到three座*/ {

void move(char x,char y);

/*对move函数的声明*/

if(n==1)

move(one,three);

else

{

hanoi(n-1,one,three,two);

move(one,three);

hanoi(n-1,two,one,three);

}

}

void move(char x,char y)

/*定义move函数*/

{

printf(“%c――>%c\n”,x,y);

}

24有一个一维数组,内放10个学生成绩,写一个函数,求出平均分,最高分和

最低分

#include

#define NUM 10

double average(int [ ]);

int high,low; //全局变量,用于"返回"最分

int main()

{

int a[NUM];

int i; double aver;

for (i=0; i

{

printf("please input No.%d's score: ",i+1); scanf("%d",&a[i]);

}

aver = average(a); //调用average()求均分printf("average score = %4.1f\n",aver);

printf("high score = %d\n",high);

printf("low score = %d\n",low);

}

double average(int score[ ])

{

int i; double total;

total=high=low=score[0];

for(i=1;i

{

total+=score[i];

if(score[i]>high)high=score[i];

if(score[i]

}

return total/10;

}

25 若干个学生的成绩(每个学生有4门课程),要求在用户输入学生序号以后,能输出该学生的全部成绩。用指针函数来实现。#include

float *s(float pointer[][4],int n) {

float *pt;

pt = *(pointer + n);

return(pt);

}

void main() {

float score[][4] =

{{45,65,65,88},{77,88,99,87},{54,78,65,54}, {45,45,78,99}};//如果考到这里请改写成绩

float *p;

int i,m;

printf("输入学号: ");

scanf("%d",&m);

printf("No.%d are :\n",m);

p = s(score,m);

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

printf("%5.2f\t",*(p + i));

printf("\n");

}

26对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果

#include

#include

struct person

{ char name[20];

int count;

}leader[3]={"Li",0,"Zhang",0,"Fun",0}; main()

{ int i,j;

char leader_name[20];

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

{ scanf("%s",leader_name);

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

if(strcmp(leader_name,leader[j].name)==0) leader[j].count++;

}

printf("\n");

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

printf("%5s:%d\n",leader[i].name,leader[i].co unt);

}

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语言上机选择题题及标准答案

c语言上机选择题题及答案

————————————————————————————————作者:————————————————————————————————日期: 2

1、下列字符序列中,不可用作C语言标识符的是(c) A.abc123 B.no_1 C.a!b D._ok_0 2、正确的C语言标识符是(a) A._buy_2 B.2_buy C.?_buy D.buy? 3、不属于C语言关键字的是(D) A.int B.break C.while D.character 4、以下选项中,合法的C语言标识符是(A) A.mon B.2_abc C.3dmax D.A.dat 5、以下选项中,合法的实型常数是(C) A.5E2.0 B.E-3 C.2E02 D.1.3E 6、以下选项中,正确的字符常量是(C) A."F" B.'\\'' C.'W' D.''' 7、已知字母A的ASCII码为十进制数65,且S为字符型, 则执行语句S='A'+'6'-'3';后,S中的值为(A) A.'D' B.68 C.不确定的值D.'C' 8、在C语言中,要求运算数必须是整型的运算符是(D) A./ B.++ C.*= D.% 9、若有定义:int m=7; float x=2.5, y=4.7;则表达式x+m%3*(int)(x+y)%2/4的值是(A) A.2.500000 B.2.750000 C.3.500000 D.0.000000 10、设变量x为float类型,m为int类型,则以下能实现将x中的数值 保留小数点后两位,第三位进行四舍五入运算的表达式是(B) A.x=(x*100+0.05)/100.0 B.m=x*100+0.5, x=m/100.0 C.x=x*100+0.5/100.0 D.x=(x/100+0.5)*100.0 11、假设所有变量均为整型,则表达式(x=2, y=5, y++, x+y)的值是(B) A.7 B.8 C.6 D.2 12、已知s是字符型变量,下面不正确的赋值语句是(B) A.s='\012'; B.s= 'u+v'; C.s='1'+'2'; D.s=1+2; 13、设x、y均为float型变量,则不正确的赋值语句是(C) A.++x ; B.x*=y-2; C.y=(x%3)/10; D.x=y=0; 14、putchar函数可以向终端输出一个(D) A.整型变量表达式值。B.字符串 C.实型变量值。D.字符 15、以下程序段的输出结果是(C) int a=12345; printf(”%2d\n”, a); A.12 B.34 C.12345 D.提示出错、无结果16、有如下程序段,从键盘输入数据的正确形式应是(B) (注:└┘代表空格) float x,y,z; scanf(“x=%d,y=%d,z=%d”,&a,&y,&z); A.123 B.x=1,y=2,z=3 C.1,2,3 D.x=1└┘y=2└┘z=3

上机考试题目及答案

题目 --1、查找员工的编号、姓名、部门和出生日期,如果出生日期为空值, --显示日期不详,并按部门排序输出,日期格式为yyyy-mm-dd。 --2、查找与喻自强在同一个单位的员工姓名、性别、部门和职称 --3、按部门进行汇总,统计每个部门的总工资 --4、查找商品名称为14寸显示器商品的销售情况, --显示该商品的编号、销售数量、单价和金额 --5、在销售明细表中按产品编号进行汇总,统计每种产品的销售数量和金额 --6、按客户编号统计每个客户1996年的订单总金额 --7、查找有销售记录的客户编号、名称和订单总额 --8、查找在1997年中有销售记录的客户编号、名称和订单总额 --9、查找一次销售最大的销售记录 --10、查找至少有3次销售的业务员名单和销售日期 --11、用存在量词查找没有订货记录的客户名称 --12、使用左外连接查找每个客户的客户编号、名称、订货日期、订单金额 --订货日期不要显示时间,日期格式为yyyy-mm-dd --按客户编号排序,同一客户再按订单降序排序输出 --13、查找16M DRAM的销售情况,要求显示相应的销售员的姓名、 --性别,销售日期、销售数量和金额,其中性别用男、女表示 --14、查找每个人的销售记录,要求显示销售员的编号、姓名、性别、 --产品名称、数量、单价、金额和销售日期 --15、查找销售金额最大的客户名称和总货款 --16、查找销售总额少于1000元的销售员编号、姓名和销售额 --17、查找至少销售了3种商品的客户编号、客户名称、商品编号、商品名称、数量和金额--18、查找至少与世界技术开发公司销售相同的客户编号、名称和商品编号、商品名称、数 量和金额 19、查找表中所有姓刘的职工的工号,部门,薪水 20、查找所有定单金额高于20000的所有客户编号 21、统计表中员工的薪水在40000-60000之间的人数 22、查询表中的同一部门的职工的平均工资,但只查询"住址"是"上海市"的员工

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上机试题及答案

c上机试题及答案文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

A.类的定义 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 659 (260 users) Total Accepted: 116 (114 users) Special Judge: No Description 定义一个Circle类,有私有数据成员radius(半径);公有成员函数getArea(),用来计算圆的面积;实现能初始化半径的构造函数,以及拷贝构造函数。要在主函数中定义两个对象,并且输出两个对象的面积。其中第二个由第一个对象初始化,圆周率取为。(15分) Input 包含一个整数。 Output 输出一行,是两个对象的面积值。具体参照样例。 Sample Input 2 Sample Output

A题 #include using namespace std; class Circle { public: Circle(int r):radius(r) {} Circle(Circle &p); double getArea(int radius); private: int radius; }; Circle::Circle(Circle &p) { radius = ; } double Circle::getArea(int radius) { float area; area = *radius*radius; return area;

} int main() { int r; double area1,area2; Circle A(r); Circle B(A); cin>>r; area1 = (r); area2 = (r); cout<

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

第一周上机题 1.以下语句描述了包含数学成绩的学生信息结构体及其数组a: struct student{ char name[20]; float math; }; student a[10] = {{"张三", 90},{"李四",85},{"王五",73}}; int count=3; // 数组中包含的学生数 编写两个函数分别实现在a数组中添加和删除学生信息。 要求: 1) 原数组已按数学成绩排序(降序),添加和删除学生信息后数组应仍为降序; 2)以下数据用于添加:{"赵二", 96}, {"钱六",65},{"孙七",80} 3) 注意:添加,删除后count数据要相应变化。 #include #include struct student{ char name[20]; float math; }; int count=3; void add(student a[10]); void dele(student a[10]); void print(student a[]); void main(){ student a[10] = {{"张三", 90},{"李四",85},{"王五",73}}; int n=0; do{ cout<<".................学生信息处理系统.................." <<"\n 1-删除" <<"\n 2-增加" <<"\n 3-结束\n" <<"\n请选择: "; cin>>n; if(n==1) dele(a); else if(n==2) add(a) ; else cout<<"谢谢使用本系统!\n"; }while(n!=3); } void add(student a[10]){ student stu; int i=0,n=count; cout<<"请输入需增加的学生信息(姓名,成绩): "; cin>>https://www.doczj.com/doc/e67500855.html,>>stu.math; while(stu.math

西工大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++上机试题及答案

A.类的定义 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 659 (260 users) Total Accepted: 116 (114 users) Special Judge: No Description 定义一个Circle类,有私有数据成员radius(半径);公有成员函数getArea(),用来计算圆的面积;实现能初始化半径的构造函数,以及拷贝构造函数。要在主函数中定义两个对象,并且输出两个对象的面积。其中第二个由第一个对象初始化,圆周率取为3.14。(15分) Input 包含一个整数。 Output 输出一行,是两个对象的面积值。具体参照样例。 Sample Input 2 Sample Output 12.56 12.56

A题 #include using namespace std; class Circle { public: Circle(int r):radius(r) {} Circle(Circle &p); double getArea(int radius); private: int radius; }; Circle::Circle(Circle &p) { radius = p.radius; } double Circle::getArea(int radius) { float area; area = 3.14*radius*radius; return area; } int main() { int r; double area1,area2; Circle A(r); Circle B(A); cin>>r; area1 = A.getArea(r); area2 = B.getArea(r); cout<

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语言上机作业题及答案

实验一: 1、已知华氏温度,根据转换公式计算相应的摄氏温度。 摄氏温度= 5*(华氏温度-32)/9 2.任意输入一个有五位数字的正整数,逆序输出每一数位上的数字。 如: 输入 12345 输出 5 4 3 2 1 #include"stdio.h" main() { double t,T; printf ("已知华氏温度,根据转换公式计算相应的摄氏温度"); scanf ("%lf",&t); T=(5*(t-32)/9); printf ("摄氏温度=%lf",T); } #include"stdio.h" main() { int value,a,b,c,d,e,m,n,h; printf ("任意输入一个有五位数字的正整数,逆序输出每一数位上的数字"); scanf ("%d",&value); a=value/10000; m=value%10000; b=m/1000; n=m%1000; c=n/100; h=n%100; d=h/10; e=h%10; printf ("%d%d%d%d%d",e,d,c,b,a); } 实验二: 1.一个成年人的身高与其父母的身高密切相关,根据以下人体标准身高预测公式计算自己或某个同学的身高,并跟实际身高比较,给出结论是否符合该公式(误

差在3厘米范围内即视为相符)。 男性身高=(父亲身高+母亲身高)×1.08÷2(厘米) 女性身高=(父亲身高×0.923+母亲身高)÷2(厘米) 2.从键盘上输入税前收入,根据以下公式及规则,计算个人所得税税额并输出。应纳个人所得税税额=(税前收入—起征点额度)*适用税率—速算扣除数 其中,起征点额度是3500元,其他如下: 应纳税所得额税率速算扣除数 不超过1500元的部分 3% 0 超过1500元至4500元的部分 10% 105 超过4500元至9000元的部分 20% 555 超过9000元至35000元的部分 25% 1005 超过35000元至55000元的部分 30% 2755 超过55000元至80000元的部分 35% 5505 超过80000的部分 45% 13505 如:某人月收入5000元,则应纳个人所得税税额为(5000-3500)* 10% - 105 = 45元。 #include #include main() { float A,a,H,h,b; printf("父亲身高(厘米)\n"); scanf("%f",&A); printf("母亲身高(厘米)\n"); scanf("%f",&a); printf("孩子实际身高(厘米)\n"); scanf("%f",&H); printf("请选择孩子性别:女=0,男=1\n"); scanf("%f",&b); if(b) h=(A+a)*1.08/2; else h=(A*0.923+a)/2; if(fabs(H-h)<=3) printf("实际身高符合该公式\n"); else

ppt上机操作题及答案

PowerPoint题共24道题 第1题 题目: ①建立页面一:版式为“标题幻灯片”; 标题内容为“思考与练习”并设置为黑体72; 副标题内容为“--小学语文”并设置为宋体28倾斜; ②建立页面二:版式为“只有标题”; 标题内容为“1、有感情地朗读课文”并设置为隶书36分散对齐; 将标题设置“左侧飞入”动画效果并伴有“打字机”声音; ③建立页面三:版式为“只有标题”; 标题内容为“2、背诵你认为写得好的段落”并设置为隶书36分散对齐; 将标题设置“盒状展开”动画效果并伴有“鼓掌”声音; ④建立页面四:版式为“只有标题”; 标题内容为“3、把课文中的好词佳名抄写下来”并设置为隶书36分散对齐; 将标题设置“从下部缓慢移入”动画效果并伴有“幻灯放映机”声音; ⑤设置应用设计模板为“Blueprint”; ⑥将所有幻灯片的切换方式只设置为“每隔6秒”换页; 答案: 1、启动PowerPoint单击页面——在“新幻灯片”对话框中选择“标题幻灯片”——确定——单击“标题”框,输入标题内容“思考与练习”——选中文字(或单击标题框)——格式工具栏,字体列表中选择黑体、字号选72 2、单击“副标题”框,输入标题内容“--小学语文”——选中文字(或单击副标题框)——格式工具栏,字体列表中选择宋体、字号选28 、选斜体 3、选择插入菜单、新幻灯片命令——在“新幻灯片”对话框中选择“只有标题”——确定——单击“标题”框,输入标题内容“1、有感情地朗读课文”——选

中文字(或单击标题框)——格式工具栏,字体列表中选择隶书、字号选36 、单击分散对齐按钮 4、选择“幻灯片放映”菜单、“自定义动画”命令——在“自定义动画”对话框中,“检查动画幻灯片对象”中选中“标题1”——“效果”选项卡、“动画和声音”列表选“飞入”、“左侧”、声音项选“打字机” ——确定 5、选择插入菜单、新幻灯片命令——在“新幻灯片”对话框中选择“只有标题”——确定——单击“标题”框,输入标题内容“2、背诵你认为写得好的段落”——选中文字(或单击标题框)——格式工具栏,字体列表中选择隶书、字号选36 、单击分散对齐按钮 6、选择“幻灯片放映”菜单、“自定义动画”命令——在“自定义动画”对话框中,“检查动画幻灯片对象”中选中“标题1”——“效果”选项卡、“动画和声音”列表选“盒状”、“展开”、声音项选“鼓掌” ——确定 7、选择插入菜单、新幻灯片命令——在“新幻灯片”对话框中选择“只有标题”——确定——单击“标题”框,输入标题内容“3、把课文中的好词佳名抄写下来”——选中文字(或单击标题框)——格式工具栏,字体列表中选择隶书、字号选36 、单击分散对齐按钮 8、选择“幻灯片放映”菜单、“自定义动画”命令——在“自定义动画”对话框中,“检查动画幻灯片对象”中选中“标题1”——“效果”选项卡、“动画和声音”列表选“缓慢移入”、“从下部”、声音项选“幻灯放映机” ——确定 9、选择格式菜单、应用设计模板命令——在“应用设计模板”对话框中,选“B luep rint.pot” ——应用 10、选择“幻灯片放映”菜单、“幻灯片切换”命令——在“幻灯片切换”对话框中,“换页方式”项去掉“单击鼠标换页”、选择“每隔”项、框中选择“0 0:06” ——全部应用 11、单击常用工具栏“保存”按钮(或选择文件菜单保存按钮)保存文件 第2题 题目: ①建立页面一:版式为“只有标题”; 标题内容为“长方形和正方形的面积”并设置为宋体48加下划线; ②建立页面二:版式为“只有标题”; 标题内容为“1、面积和面积单位”并设置为仿宋体36两端对齐;

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

实验一 Visual C++的使用及顺序结构程序设计 一、实验目的 1、掌握启动和退出VC6的方法。 2、熟悉VC6开发环境。 3、初步掌握简单程序的上机操作基本步骤,熟悉C单文件程序的输入、编译、链接和运行过程。 4、初步掌握程序的编辑修改和调试。 5、熟练使用赋值运算、算术运算等表达式。 6、熟练使用标准输入、输出函数及各种数据类型的格式说明符。 二、实验内容 1、下面C语言程序,其功能是显示字符串“欢迎同学们来到华北水院计算中心!”。 请同学们按照下面的实验指导学习VisualC++6.0的使用。 1.启动VisualC++6.0开发环境 (1)单击“开始”按钮,选择“程序” ——〉“Microsoft Visual Studio 6.0菜单项,单击“MicrosoftVisualC++6.0”,屏幕出现标题为“当时的提示”的窗口。 (2)单击“结束”按钮,关闭窗口,进入开发环境的主窗口。 2.使用Visual C++对一个C程序进行编辑、编译、连接和运行。 ⑴分析 Visual C++中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。 ⑵步骤 ①编辑

图1-1 New对话框 编辑是将C源程序输入计算机的过程。在Visual C++主界面下,点击File菜单,选择New菜单项,即可出现New对话框,如图1-1所示。在弹出窗口中的Files标签页下,选择C++ Source File。在选项卡右面的File编辑框里输入文件名如“”,在Location编辑框里输入文件路径,如“d:\test”。点击OK按钮。将出现编辑窗口,如图1-2所示。在图1-2所示的右端编辑窗口里输入以下C源程序并保存文件。 include void main() { printf(" 欢迎同学们来到华北水院计算中心!"); } 图1-2 编辑窗口 ②编译 编译是使用系统提供的编译器将文本文件生成机器语言的过程,结果为,由于没有得到系统分配的绝对地址,还不能直接运行,如图1-3所示。选择Build菜单下的Compile ,计算机将完成对当前源程序的编译。按提示建立默认工程空间。编译无错时,将源程序编译为目标文件。编译结果如图1-4所示。如果出现运行错误,应该分析错误的原因,例如,是输入数据错误,还是代码错误;如果需要修改源程序文件,还需重新编译、链接和执行。改正编译窗口下方指出的两个错误,直至编译成功,如图1-5所示。

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

数据库上机习题及答案

数据库及应用复习题 一、设计题 有一个[学生课程]数据库,数据库中包括三个表: 学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为: Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。 课程表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为:Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。 成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为:SG(Sno,Cno,Grade) (SNO, CNO)为关键字。 用SQL语言实现下列功能: 1.建立学生表Student,其中学号属性不能为空,并且其值是唯一的。 2.向Student表增加“入学时间(Scome)”列,其数据类型为日期型。 3.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。4.查询学习1号课程的学生最高分数、平均成绩。 5.查询与“李洋”在同一个系学习的学生。 6.将计算机系全体学生的成绩置零。 7.删除学号为05019的学生记录。 8.删除计算机系所有学生的成绩记录。 1. CREATETABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20), Ssex CHAR(2), Sage INT, Sdept CHAR(15)) 2. ALTER TABLE Student ADD Scome DATETIME 3. SELECT Sno, Grade FROM SG WHERE Cno='3' ORDER BY Grade DESC 4. SELECT MAX(Grade), AVG(Grade) FROM SC WHERE Cno='1' 5. SELECT Sno, Sname, Sdept FROM Student WHERE Sdept IN

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、函数定义时涉及的基本要素是:、、。

相关主题
文本预览
相关文档 最新文档