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
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
} } } 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 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码降序排列。 第二章 若有数学式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 下面正确的字符常量是() 上机任务三答案 1.打开程序modi3_1.c,程序存在一个错误,请修改、运行并查看结果。 #include 修改、运行并查看结果。 #include C语言习题集 3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。 输入格式: B 输出格式: 26 #include 上机练习题 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) 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的值由主函数从键盘读入,要求不大 1整型、实型 1.1实型四舍五入 请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。例如:实型数为1234.567, 则函数返回1234.57;实型数为1234.564, 则函数返回1234.56。注意: 部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include 上机考试习题集 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 1.从矩形的长,宽,输出面积(长为 6.5,宽为4.5 ) #in elude sca nf("%d",&i); if(i>=0) prin tf("i=%d\n",i); else prin tf("i=%d\n",-i); 6.从键盘输入年份,判断是不是闰年,如果是,输出是闰年(上机考试重点) #in elude 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套) 第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 第二题:下列给定程序中,函数fun 的功能是:根据整型参n ,计算如下公式的值。 ,11=A ,1112A +=A ,1123A +=A … ,1 11-A +=A n n 例如,若n=10,则应输出0.617978。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不要更改程序的结构! #include 实验一上机操作初步(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语言上机考试练习题(1) 说明:我们已经学习完成了基本数据类型、基本控制语句,以及数组、函数这些知识了,请同学们看看附件中的这些题目是否能够快速编写出来?可能有个别题目与过去的练习有些重复,请尽量不要去参考过去的答案。如果现在编写起来困难还很多,那你就要加倍努力了。 1、编写一个程序,判定一个字符串是否是另一个字符串的子串,若是,返回子串在主串中的位置。要求: (1)在主函数中输入两个字符串,调用子函数cmpsubstr()判断,并在主函数输出结果。 (2)子函数的返回值为-1表示未找到,否则返回子串的位置(起始下标)。#include 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 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 一、编程题 1.输入2个整数,求两数的平方和并输出。 #include 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 第一套题 上机填空: #include { 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 C语言上机试题
C语言上机题库百科园第2章!南信大!
C语言上机练习题 (2)
C语言上机题库
C语言上机练习题
c语言上机题库 (1)
c语言上机试题1(数学计算)
c语言上机考试训练题库及答案
c语言上机练习题及答案[1]汇总
C语言上机练习题
2020年全国计算机等级考试二级c语言上机精选题库(共80套)
c语言上机操作题
C语言上机练习题_828701982
历年全国计算机等级考试-二级C语言上机考试题库及答案
C语言练习题 带详解答案
二级C语言上机题库及答案