C语言上机l练习题

C语言上机l练习题
C语言上机l练习题

第一次上机练习内容

1. 2.1节的课后练习

2. 程序填空题

1). 请补充完整程序prog1.c

#include

/*************************/

{

printf("This is a error program.");

/*************************/

3. 程序修改题

1). 程序prog2.c中有错,请修改。

#include

/***********************/

Main

{

printf("This is a error program.");

}

2). 程序prog3.c中有错,请修改。

#include

main()

{

char c='a';

/*************************/

printf("this statement is error.why?")

}

3). 程序prog4.c中有错,请修改。

#include

main()

{

/************************/

int 2a=120;

printf("This is a error program.");

}

4). 程序prog5.c中有错,请修改。

#include

main()

{

/*************************/

int Case=5,char b='a';

/*************************/

printf("Case=%d",case);

}

4. 程序设计题

1).请编写如下程序prog6.c,查看运行结果,分析原因。

#include

main()

{

short a=32767,b=a+1;

printf("a=%hd,a+1=%hu,b=%hd,b+1=%hu",a,a+1,b,b+1);

}

2).请编写如下程序prog7.c,查看运行结果,分析原因。

#include

main()

{

unsigned short a=65535,b=a+1;

printf("a=%hd,a+1=%hu,b=%hd,b+1=%hu",a,a+1,b,b+1);

}

3).请编写程序prog8.c,编译该程序,查看编译时的出错信息,分析原因。#include

main()

{

int a;

a=10;

float b;

b=1.0;

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

}

4).请编写如下程序prog9.c,查看运行结果,分析原因。

#include

main()

{

printf("ABCD\'12\\ 4567\0 abc");

}

第二次上机练习内容

1.程序填空题

1). prog1.c中字符变量ch1中存放的是大写字母,请填空,实现字符变量ch2中存放的是ch1中对应的小写字母。

#include

main()

{

char ch1='B',ch2;

/*************************/

printf("ch1=%c,ch2=%c\n",ch1,ch2);

}

2). prog2.c中,变量ch中存放的是数字字符,请将ch中的数字字符转换成数字存入到整型变量i中。

#include

main()

{

char ch='3';

int i;

/*************************/

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

}

3).变量a是一个四位的正整数,请将prog3.c补充完整,使四位数a中的个位、十位、百位和千位上的值分别赋给变量gw、sw、bw和qw。#include

main()

{

int a=6752,gw,sw,bw,qw;

/*************************/

gw= ; sw= ;

/*************************/

; qw= ;

printf("四位数a=%d\n其中gw=%d,sw=%d,bw=%d\n",a,gw,sw,bw,qw);

}

4).a是一个实型变量,请将程序prog4.c补充完整,分别输出a的整数部分和小数部分。

#include

main()

{

float a=64.81479,decimal;

int integer;

/*************************/

integer= ;

/*************************/

decimal= ;

printf("实型数据a=%f\n其中整数部分integer=%d,小数部分decimal=%f\n",a,integer,decimal);

}

2.程序修改题

1).变量a是一个超过两位的正整数,请修改程序prog5.c,使b的值为a 的最后两位。

#include

main()

{

int a=57264,b;

/*************************/

b=a/100;

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

}

3.程序设计题

1). 请编写如下程序prog6.c,查看运行结果,分析原因。

#include

main()

{

int a,b,c;

printf("%d\n",(a=10,b=20,c=30));

printf("%d a=%d b=%d c=%d\n",a=(10,b=20,c=30),a,b,c);

}

2).如果a是一个实型变量,请编程序prog7.c,让a保留两位小数并对第三位进行四舍五入。

3).有两个两位数a和b,请编写程序prog8.c,将a、b合并形成一个整数放在好》c中。合并的方式是:将a数的十位和各位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和各位上。

4). 有两个两位数a和b,请编写程序prog9.c,将a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和各位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。

第三次上机练习内容

1.3.

2.1节的课后练习

2.程序填空题

1).从键盘输入一个字符,通过getchar()函数接收赋给变量ch,再用putchar()函数将该字符输出,请补充完整vprog1.c。

#include

main()

{

char ch;

/*************************/

ch=getchar() ;

putchar(ch);

}

2).补充程序prog2.c,通过变量a、b和c,使程序的输出结果为:a=50,b=40,c=30

3). 补充程序prog3.c,使程序的输出结果为a=10,b=20,a+b=30 。

#include

main()

{

int a=10,b=20;

/*************************/

printf(" ",a,b,a+b);

}

4).在程序prog4.c中填写相应的内容,当输入的内容为3,c=4 5时,使变量a、b、c的值分别3,4,5。

#include

main()

{

int a,b,c;

/*************************/

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

printf("%d,%d,%d",a,b,c);

}

3.程序修改题

1).通过程序prog5.c给变量a、b和c分别赋值1,2,3,再通过printf 函数输出各变量的值。

#include

main()

{

int a,b,c;

/*************************/

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

/*************************/

printf("%d,%d,%d",a,b c);

}

2).修改程序prog6.c,使各变量能正确的接收并输出数据。#include

main()

{

int a,b;

char c;

float d;

/*************************/

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

/*************************/

printf("%d,%f,%s,%f",a,b,c,d);

}

4.程序设计题

1).请编写如下程序prog7.c,查看运行结果,分析原因。#include

main()

{

int k=1234;

float f=123.456;

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

printf("\n");

printf("%f\n%12f\n%12.2f\n%.0f",f,f,f,f);

}

2).请编写如下程序prog8.c,查看运行结果,分析原因。

#include

main()

{

float f=123.456;

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

printf("\n");

printf("%s\n%6s\n%.3s","abcd","abcd","abcd");

printf("\n");

}

3).请编写如下程序prog9.c,根据指定数据进行输入,查看运行结果,分析原因。

#include

main()

{

int a,b,c,d,e,f,g;

char s,t;

scanf("%3d%2d",&a,&b); /*4789*/

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

scanf("%2d%3c%2c%3d",&c,&s,&t,&d); /*987654321*/

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

scanf("%2d%*2d%3d%3d",&e,&f,&g); /*123456789*/

printf("e=%d f=%d g=%d\n",e,f,g);

}

4).请编写如下程序prog10.c,根据指定数据进行输入,查看运行结果,分析原因。

#include

main()

{

int a=10,b=20;

scanf("%d",&a,&b); /*输入3 4*/

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

printf("%d %d %d\n",12,34);

printf("%d %d\n",8,9,10);

}

第四次上机练习内容

1. 程序填空题

1).在程序prog1.c中,从键盘输入一个字符给变量ch,若输入的字符为数字字符,则输出“YES!”,否则输出“NO!”。

#include

main()

{

char ch;

/*************************/

ch= ;

/*************************/

if( )

printf("YES!");

else

printf("NO!");

}

2). 在程序prog2.c中输入两个数,分别放入x和y中,若两个数不相等,则输出其中的大数,若两数相等则输出x的值。

#include

main()

{

int x,y;

scanf("%d %d",&x,&y);

/*************************/

if

printf("两个数中的较大值是:%d\n",x);

else

printf("两个数中的较大值是:%d\n",y);

}

3). 在程序prog3.c中通过条件表达式判断变量x是奇数还是偶数,是奇数输出1,偶数输出0。

#include

main()

{

int x;

scanf("%d",&x);

/*************************/

printf("%d\n", );

}

2. 程序修改题

1).在程序prog4.c中,通过键盘输入数据给变量x,若1≤x<100则输出x的值,否则提示出错。

#include

main()

{

int x;

scanf("%d",&x);

/*************************/

if(1≤x<100)

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

else

printf("erro!\n");

}

2).修改程序prog5.c,根据输入的学生成绩给出相应的等级,大于或等于90分以上的等级为A,60分以下的等级为E,其余每10分为一个等级。#include

main()

{

int g;

printf("Enter a mark: ");

scanf("%d",&g);

/*************************/

switch g/10

{

case 10:

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

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

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

/*************************/

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

default:printf("E\n");

}

}

3). 修改程序prog6.c,变量t为字符型,通过程序判断t中的值是否为字母,若是输出YES,否则输出NO。

#include

main()

{

char t;

/*************************/

scanf("%c",t);

/*************************/

if(t>='A'||t<='Z'&&t>='a'||t<='z')

printf("YES\n");

else

printf("NO\n");

}

3. 程序设计题

1).编写程序prog7.c,完成以下表达式的功能。

2).编写程序prog8.c,实现两个变量值的交换。(例如:a的初值为5,b 初值为10,交换后变为a的值为10,b为5)。

3).编写程序prog9.c,输入a、b、c三个数,打印出最大者。

4). 请编写如下程序prog10.c,查看运行结果,分析原因。

#include

main()

{

int x=0,y=2,z=3;

switch(x)

{

case 0:switch(y==2)

{

case 1:printf("*");break;

case 2:printf("%");break;

}

case 1:switch(z)

{

case 1:printf("$");

case 2:printf("*");break;

default:printf("#");

}

}

}

第五次上机练习内容

1. 程序填空题

1).程序prog1.c的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。

#include

main()

{

float x,max,min;

scanf("%f",&x);

max=x; min=x;

/*************************/

while( )

{

if(x>max) max=x;

/*************************/

if( ) min=x;

scanf("%f",&x);

}

printf("max=%f\nmin=%f\n",max,min);

}

2). 程序prog2.c的功能是:将整型变量s中的数值逆置放入变量t中。#include

main()

{

int s,t=0;

scanf("s=%d",&s);

/*************************/

while( )

{

/*************************/

t= ;

s=s/10;

}

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

}

3). 程序prog3.c的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。请填空。

#include

main()

{

float s=0.0;

scanf("%d",&n);

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

/*************************/

if( )

/*************************/

s= ;

prinf("s=%f\n",s);

}

2. 程序修改题

1).从键盘输入n(n<10)的值,修改程序prog4.c,计算并输出n!。#include

main()

{

int i=1,n;

/*************************/

double s=0;

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

/*************************/

while(i≤n)

{

s=s*i;

}

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

}

2).修改程序prog5.c,功能是计算并输出n以内(包括n)能被7或11整除,但不能同时被7和11整除的所有自然数平方根之和。

#include

#include

main()

{

int i,n;

float s=0.0;

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

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

/*************************/

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

/*************************/

s=s+fabs(i);

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

}

3. 程序设计题

1).编写程序prog7.c,求1-3+5-7+…-99+101的值。

2).编写程序prog8.c,功能是计算并输出下列多项式的值:

n S +++++++++++

= 321132112111

例如,当n=11时,S=1.833333

3).编写程序prog9.c ,通过循环的嵌套输出九九乘法表。 4). 请编写如下程序prog10.c ,查看运行结果,分析原因。

#include #include main() { int x,i;

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

if(++x%2==0) if(++x%3==0) if(++x%7==0)

printf("%d ",x);

}

printf("\n");

}

C语言上机练习题

上机练习题 完成 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 完成 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 完成 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。完成 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 完成 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 完成 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 完成 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 完成 8.输入1~10之间的一个数字,输出它对应的英文单词。 完成 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 完成 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 完成 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境;

西工大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:第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语言上机题库百科园第2章!南信大!

第二章 若有数学式3ae bc,则不正确的C语言表达式是() A.3*a*e/b*c B.a/b/c*e*3 C.3*a*e/b/c D.a*e/c/b*3 设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为()。 A.4 B.3 C.2 D.1 下列表达式中,不满足"当x的值为偶数时值为真,为奇数时值为假"的要求的是() A.(x/2*2-x)==0 B.!(x%2) C.!(x%2==0) D.x%2==0 表达式18/4*sqrt(4.0)/8值的数据类型为()。 A.char B.double C.不确定 D.float 在C语言中,要求运算数必须是整型的运算符是( ) A.% B./ C.++ D.!= 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。 A.4

C.16 D.52 C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( ) A.必须为下划线 B.必须为字母 C.可以是字母、数字和下划线中的任意一种 D.必须为字母或下划线 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( ) A.不知道a的值,不能确定 B.0 C.2 D.1 判断字符型变量c1是否为数字字符的正确表达式为( ) A.(c1>='0')&&(c1<='9') B.(c1>=0)&&(c1<=9) C.('0'>=c1)||('9'<=c1) D.'0'<=c1<='9' 下面四个选项中,均是合法的用户标识符的选项是()。 A._123 temp INT B.A p_o do C.b-a goto int D.float lao _A 以下关于C语言数据类型使用的叙述中错误的是( ) A.若要处理如"人员工资"的相关数据,单精度类型 B.若只处理"真"和"假"两种逻辑值,应使用逻辑类型 C.若要保存带有多位小数的数据,应使用双精度类型 D.若要准确无误差的表示自然数,应使用整数类型 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。 A.7 B.8 C.6 D.2 下面正确的字符常量是()

C语言上机练习题 (2)

上机任务三答案 1.打开程序modi3_1.c,程序存在一个错误,请修改、运行并查看结果。 #include void main() { int a=5,c,b=3; 求余数运算%两边应为整型数据 c=a%b; printf("%d\n",c); } 2.打开程序modi3_2.c,程序存在一个错误,请修改、运行并查看结果。(注意:除了错误行,其它行不得修改) #include void main() { int a=5,c; float b=3.0; c=a%(int)b; 强制类型转换时,类型名一定要用括号括起来 printf("%d\n",c); } 3.打开程序modi3_3.c,程序存在一个错误,请修改、运行并查看结果。 方法一: #include void main() { int a=8,b=8,c; 在变量定义中“a=b=8”为非法赋值 c=a+b; printf("%d\n",c); } 或者 方法二: #include void main() { int a,b,c; a=b=8; 合法的赋值语句 c=a+b; printf("%d\n",c); } 4.打开程序modi3_4.c,程序要求输出1000和25000;程序存在两个错误,请

修改、运行并查看结果。 #include void main() { float a,b; a=1e+3; 用指数形式表示时,尾数部分不能空,指数部分必须为整数 b=0.25e5; printf("%f\n%f\n",a,b); } 5.打开程序modi3_5.c,程序填空题,程序要求:从键盘上输入一个小写字母(用getchar函数),要求输出大写字母(使用putchar函数);请修改、运行并查看结果。 #include void main() { char ch; ch=getchar(); /* Fill Blank */ putchar(ch-32); /* Fill Blank */ putchar('\n'); } 6.打开程序modi3_6.c,程序填空题,程序要求:输入华氏温度F,利用公式C=5/9*(F-32)转换成摄氏温度C,要求输出保留两位小数。例如输入100,输出37.78 。 #include void main() {float f,c; scanf("%f",&f); c=5.0/9*(f-32); printf("%6.2f\n",c); } 注意:温度转换公式不能写为5/9。 7.新建程序prog3_1.c,实现以下内容:从键盘上输入一个整数x,输出=1的值,例如:输入2,输出y=9.8。 + x y x+ e #include #include 注意:若要使用数学函数,必须包含数学函数库。 void main() { int x; float y;

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 #include int main(void) { char c1,c2;

C语言上机练习题

上机练习题 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 8.输入1~10之间的一个数字,输出它对应的英文单词。 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境; ②定义变量digit、x、y分别表示原始数、原始数的个位数和逆数; ③输入原始正整数x; ④从x中分解出个位数字digit; ⑤合并个位digit至逆数y中; ⑥原始数x缩小10倍:x=x/10; ⑦如果x非零,则转④; ⑧输出逆数y,结束 13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构 成)。 14.输入10个数,分别统计其中正数、负数、零的个数。 15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)

c语言上机题库 (1)

1、给定n 个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 2、编写程序求无理数e 的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x 的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他) 6、求出N ×M 整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n 位自然数的各位数字的积。(n 是小于10的 自然数) 8、计算n 门课程的平均值,计算结果作为函数值返回。 例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。 10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。

11、请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun用比较法对主程序中用户输入的具有10 个数据的数组a按由大到小排序,并在主程序中输出 排序结果。 13、编写main程序调用函数fact求解从m个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m不能小于n,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a和b分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函数值为3。 19、对任意输入的x,用下式计算并输出y 的值。 5 x<10 y= 0 x=10 -5 x>10 20、求给定正整数m以内的素数之和。 例如:当m=20时,函数值为77。 21、判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大

c语言上机试题1(数学计算)

1整型、实型 1.1实型四舍五入 请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。例如:实型数为1234.567, 则函数返回1234.57;实型数为1234.564, 则函数返回1234.56。注意: 部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include int NONO(void); float fun ( float h ) { } int main(void) { float a; printf ("Enter a: "); scanf ( "%f", &a ); printf ( "The original data is : " ); printf ( "%f \n\n", a ); printf ( "The result : %f\n", fun ( a ) ); NONO( ); return 1; } int NONO(void) {/* 请在此函数内打开文件,输入测试数据,调用fun 函数,输出数据,关闭文件。*/ int i ; float a ; FILE *rf, *wf ; rf = fopen("./05/in.dat","r") ; wf = fopen("./05/out.dat","w") ; for(i = 0 ; i < 20 ; i++) { fscanf(rf, "%f", &a) ; fprintf(wf, "%f\n", fun(a)) ; } fclose(rf) ; fclose(wf) ; return 1; }

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语言上机练习题及答案[1]汇总

1.从矩形的长,宽,输出面积(长为 6.5,宽为4.5 ) #in elude mai n() float len gth,width,area; sca nf("%f%f", & le ngth,&width); area=le ngth*width; prin tf("area=%f\n",area); 2.定义符号常量,从键盘输入圆的半径 3.5,求圆的周长和面积 #defi ne PI 3.14 #in clude mai n() float r,c,area; sca nf("%f",&r); c=2* Pl*r; area=P l*r*r; prin tf("c=%f,area=%f\n",c,area); 3.练习上机手册P10 3,4, 5题,看看输出结果,并思考为什么 4.从键盘输入一个整数,输出其绝对值(采用两个if语句实现)int i; sea nf("%d",&i); if(i>=0) prin tf("i=%d\n",i); if(i<0) prin tf("i=%d\n",-i); 5.从键盘输入一个整数,输出其绝对值(采用if ―― else语句实现)#in elude mai n() int i; #in clude mai n()

sca nf("%d",&i); if(i>=0) prin tf("i=%d\n",i); else prin tf("i=%d\n",-i); 6.从键盘输入年份,判断是不是闰年,如果是,输出是闰年(上机考试重点) #in elude mai n()

C语言上机练习题

C语言上机练习题 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

1.阅读以下程序,说出其功能和运算结果。 #include<> intmain() { intn; intfactorial(intn); scanf("%d",&n); printf("%d\n",factorial(n)); return0; } intfactorial(intn) { inti,fact=1; for(i=1;i<=n;i++) fact=fact*i; returnfact; } 若输入5↙ 2.改正下列程序中的错误,在屏幕上显示“WelcometoYou!”。 #include<> intmian() { printf("WelcometoYou!\n") return0; } 3.若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【3】。 #include<> main() { intx,y; scanf("%d",&x); if(x<1) {y=x;

printf("x=%d,y=x=%d\n",x,y); } elseif(x<10) {y=2*x-1; printf("x=%d,y=2*x-1=%d\n",x,y); } else {y=3*x-11; printf("x=%d,y=3*x-11=%d\n",x,y); } } 4.当输入19,2,21时下列程序运行的结果是()。 #include<> main() {inta,b,c,max; printf("pleasescanthreenumbera,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

2020年全国计算机等级考试二级c语言上机精选题库(共80套)

2020年全国计算机等级考试二级c语言上机精选题库(共80套) 第1套试题 第一题:给定程序中,函数fun的功能是:计算N*N矩阵的主对角元素和反向对角元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #define N 4 fun(int t[][N], int n) { int i, sum; ___1___; for (i=0; i

第二题:下列给定程序中,函数fun 的功能是:根据整型参n ,计算如下公式的值。 ,11=A ,1112A +=A ,1123A +=A … ,1 11-A +=A n n 例如,若n=10,则应输出0.617978。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不要更改程序的结构! #include #include /********found********/ fun(int n) { double A = 1; int i; /********found********/ for(i=2;i #include void fun (int a, int b, long *c) { }

c语言上机操作题

实验一上机操作初步(2学时) 一、实验方式: 一人一机 二、实验目的: 1、了解C语言程序的特点与基本结构。 2、了解C语言程序的编译环境。 3、掌握使用C语言编写和调试程序的流程:编辑-保存-编译-构建(组件)-执行。 4、掌握C语言程序在Visual C++ 6.0环境下的调试过程。 5、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,第四题为选做题目。 1、编辑实验教材P2程序,掌握C语言程序在Visual C++6.0环境下的编译流程和调试过程。(实验教材P2) 2、在屏幕上实现下列图案的输出: **************************** hello,welcome to china! good bye! **************************** (实验教材P11) 3、计算两个数x和y的和。(教材P5【例1-2】) 4、求两个数的最大值。(教材P5【例1-3】) 四、实验步骤与过程: 1、#include "stdio.h" void main( ) { printf("Hello,World!"); printf("\n"); } 2、 五、实验调试记录: 1、 2、 实验二简单的C程序设计(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握C语言的数据类型。 2、掌握标识符、常量、变量的定义及使用。 3、掌握C语言的常用运算符及表达式。 三、实验内容:

说明:前四题为必做题目,第五题为选做题目。 1、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。(实验教材P18) 2、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。(实验教材P27) 3、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数的平均值。(实验教材P21) 4、输入并运行以下程序,分析运行结果。(实验教材P27) #include “stdio.h” void main( ) { int i,j; i=8; j=10; printf(“%d,%d\n”,++i,++j); i=8; j=10; printf(“%d,%d\n”,i++,j++); i=8; j=10; printf(“%d,%d\n”,++i,i); i=8; j=10; printf(“%d,%d\n”,i++,i); } 5、从键盘上输入3个数a、b、c,求一元二次方程的解x1、x2,并分别把这两个解的绝对值作为圆柱的半径与高,计算圆柱的体积。(实验教材P20) 四、实验步骤与过程: 五、实验调试记录: 实验三选择结构程序设计(一)(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握单分支if语句的使用方法。 2、掌握双分支if-else语句的使用方法。 3、掌握多分支语句的一般形式和使用方法。 三、实验内容: 说明:前四题为必做题目,第五题为选做题目。 1、从键盘输入一个3位整数,请输出该数的逆序数。(实验教材P27) 2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。(实验教材P27) 3、判断箱子是正方体还是长方体。请根据注释将程序填写完整。(实验教材P33) 4、编写程序,通过输入x的值,计算阶跃函数y的值。(教材P70【例5-4】)

C语言上机练习题_828701982

C语言上机考试练习题(1) 说明:我们已经学习完成了基本数据类型、基本控制语句,以及数组、函数这些知识了,请同学们看看附件中的这些题目是否能够快速编写出来?可能有个别题目与过去的练习有些重复,请尽量不要去参考过去的答案。如果现在编写起来困难还很多,那你就要加倍努力了。 1、编写一个程序,判定一个字符串是否是另一个字符串的子串,若是,返回子串在主串中的位置。要求: (1)在主函数中输入两个字符串,调用子函数cmpsubstr()判断,并在主函数输出结果。 (2)子函数的返回值为-1表示未找到,否则返回子串的位置(起始下标)。#include #include void main() { int cmpsubstr(char *s1,char *s2); char str1[20],str2[50]; char *s1=str1,*s2=str2; gets(str1); gets(str2); printf("%d",cmpsubstr(s1,s2)); } int cmpsubstr(char *s1,char *s2) { int i,d,a=0,situation=0; d=strlen(s1); for(i=0;*(s2+i)!='\0';i++) {

if(*(s1+a)==*(s2+i)) { a++; if(a==d) { situation=1; break; } } else { a=0; } } if(situation==0)return(-1); else return(i-d+2); } 2、输入一个字符串,有数字和非数字字符,如:a123x456 17960?302tab5876,将其中连续的数字作为一个整数,依次存放到数组a中。例如,123放在a[0]中,456放在a[1]中等等,统计共有多少个整数,并输出这些整数。要求:(1)在主函数中输入字符串,并输出结果。调用子程序处理字符串。 (2)子函数的返回值为整数的个数。 #include #include void main() { int search(char *str,int *sum); char str[100]; int d,sum[20],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语言练习题 带详解答案

一、编程题 1.输入2个整数,求两数的平方和并输出。 #include int main(void) { intt a ,b,s; printf("please input a,b:\n"); scanf("%d%d”,&a,&b); s=a*a+b*b; printf("the result is %d\n",s); return 0; } 2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。 #include #define PI 3.14 int main(void) { double r ,area , girth; printf("please input r:\n"); scanf("%lf",&r); if (r>=0) { area =PI*r*r; girth =2*PI*r ;

printf("the area is %.2f\n", area); printf("the girth is %.2f\n", girth);} else printf("Input error!\n"); return 0; } 3、已知函数y=f(x),编程实现输入一个x值,输出y值。 2x+1 (x<0) y= 0 (x=0) 2x-1 (x>0) #include void main() { int x,y; scanf(“%d”,&x); if(x<0) y=2*x+1; else if(x>0) y=2*x-1; else y=0; printf(“%d”,y); } 4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。 #include void main(){

二级C语言上机题库及答案

第一套题 上机填空: #include double fun(double e) { int i, k; double s, t, x; s=0; k=1; i=2; /**********found**********/ x=__1__/4; /**********found**********/ while(x __2__ e) { s=s+k*x; k=k* (-1); t=2*i; /**********found**********/ x=__3__/(t*t); i++; } return s; } main() { double e=1e-3; printf("\nThe result is: %f\n",fun(e)); 第一处答案:3.0 第二处答案:> 第三处答案:(2*i+1)或者(t+1) 上机改错题: #include /************found************/ void fun ( int n )

{ int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k++ ) { /************found************/ s = s + (Double)a / b; c = a; a = a + b; b = c; } return s; } main( ) { int n = 5; printf( "\nThe value of function is: %lf\n", fun ( n ) ); } 第一处改错:将:void fun ( int n ) 改为double fun ( int n ) 第二处改错:s = s + (Double)a / b; 改为s = s + (double)a / b; 第二套题 上机填空题 #include double fun(int n) { int i; double s, t; /**********found**********/ s=__1__; /**********found**********/ for(i=1; i<=__2__; i++) { t=2.0*i; /**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/__3__; } return s; } main() { int n=-1; while(n<0) { printf("Please input(n>0): "); scanf("%d",&n); }

相关文档
最新文档