c语言上机考试训练题库及答案
计算机二级C语言上机试题库和答案解析(100套)

完美WORD格式计算机二级 c 语言上机题库及答案内部资料,切勿外传!.第 1 套填空题请补充 FUN 函数,FUN 函数的功能是求 10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdio.h>longfun(int n){if ( 1 )return (n*fun( 2));return 3;}main(){printf("10!=%ld\n", fun(10));}第 1 处填空:n>1 或 1<n第 2 处填空:n-1第 3 处填空:1 或 11 或 1L改错题下列给定程序的功能是:读入一个整数 K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数 2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(intn);{int i,m;m =1;/********found********/for (i=2; i<n;i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %dis(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第 1 处:Isprime(int n);应改为Isprime(int n)第 2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。
C语言上机题参考答案

20、设有1<=n<=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进
行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的
报数,如此进行下去直到所有的人都出圈为止。
要求按出圈次序输出编号。
输入格式如下:
n s m
示例:
输入:
6 1 3
输出:
3 6 4 2 5 1
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
8、编程输出n行图形(n值通过键盘输入),
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
if(x>1) y=6*x+5;
printf("%d",y);
}
三、循环图形
7、编程输出n行图形(n值通过键盘输入)
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
******
#include<stdio.h>
void main()
{int i,j,n;
printf("%.2f\n",(a+b+c)/3.0);
C语言程序设计上机考试试题和参考答案

printf("Input str1:\n"); gets(str1); //1
printf("Input m and n:\n"); scanf("%d%d", &m, &n); //1
mystrcpy(str1, str2, m, n); //2 puts(str2); }
1、请按行读入数据 2、请按给定的函数原型编写程序,否则即使程序运行结果正确,也不给分。 参考答案
#include<stdio.h>
void Input(int a[][10], int n);
int Compute(int a[][10], int n);
main()
{
int n, a[10][10]; int sum;
//2
{
int i, flag = 0, sum = 0; //1
for (i = 1; i <= n / 2; i++) //1
{
if (n % i == 0)
//1
{
sum = sum + i; //1
}
}
if (sum == n)
//1
{
flag = 1;
}
return flag;
//1
} 3.(15 分)请按给定要求编程计算方阵的主对角线之和。其中方阵的输入请在 Input 函数实现,计算主对角之和请在 Compute 函数实现,计算结果请在主函数打印, 且给定的方阵最大为 10x10,方阵实际大小请在主函数读入。Input 函数和 Compute 函数的函数原型如下:
计算机二级C语言考试上机试题及答案

xx年计算机二级C语言考试上机试题及答案1.算法的空间复杂度是指( )。
A.算法程序的长度B.算法程序中=的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.以下表达中正确的选项是( )。
A.一个逻辑数据构造只能有一种存储构造B.逻辑构造属于线性构造,存储构造属于非线性构造C.一个逻辑数据构造可以有多种存储构造,且各种存储构造不影响数据处理的效率D.一个逻辑数据构造可以有多种存储构造,且各种存储构造影响数据处理的效率3.简单的交换排序方法是( )。
A.快速排序B.选择排序C.堆排序D.冒泡排序4.关于构造化程序设计原那么和方法的描述错误的选项是( )。
A.选用的构造只准许有一个入口和一个出口B.复杂构造应该用嵌套的根本控制构造进展组合嵌套来实现C.不允许使用GOT0语句D.语言中假设没有控制构造,应该采用前后一致的方法来模拟5.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。
A.可重用性差B.平安性差C.非持久性D.冗余性6.面向对象的设计方法与传统的面向过程的方法有本质不同,它的根本原理是( )。
A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念7.对如下二叉树进展后序遍历的结果为( )。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA8.软件设计包括软件的构造、数据接口和过程设计,其中软件的过程设计是指( )。
A.模块间的关系B.系统构造部件转换成软件的过程描述C.软件层次构造D.软件开发过程9.两个或两个以上模块之间关联的严密程度称为( )。
A.耦合度B.内聚度C.复杂度D.数据传输特性10.以下描述错误的选项是( )。
A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合11.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
c语言上机选择题题及答案

c语言上机选择题题及答案1、下列字符序列中,不可用作C语言标识符的是(c)A.abc123 B.no_1 C.a!b D._ok_02、正确的C语言标识符是(a)A._buy_2 B.2_buy C.?_buy D.buy?3、不属于C语言关键字的是(D)A.int B.break C.while D.character4、以下选项中,合法的C语言标识符是(A)A.mon B.2_abc C.3dmax D.A.dat5、以下选项中,合法的实型常数是(C)A.5E2.0 B.E-3 C.2E02 D.1.3E6、以下选项中,正确的字符常量是(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.00000010、设变量x为float类型,m为int类型,则以下能实现将x中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是(B)A.x=(x*100+0.05)/100.0 B.m=x*100+0.5, x=m/100.0C.x=x*100+0.5/100.0 D.x=(x/100+0.5)*100.011、假设所有变量均为整型,则表达式(x=2, y=5, y++, x+y)的值是(B)A.7 B.8 C.6 D.212、已知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.整型变量表达式值。
计算机二级《C语言》上机操作试题及答案

计算机二级《C语言》上机操作试题及答案计算机二级考试是全国计算机等级考试,四个等级中的一个等级,由教育部考试中心主办,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。
下面是店铺收集整理的计算机二级《C语言》上机操作试题及答案,仅供参考,希望能够帮助到大家。
(1)一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、c、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是( )。
A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA(2)下列叙述中正确的是( )。
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的'(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。
A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)(4)下列叙述中正确的是( )。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是( )。
A.控制流B.事件驱动C.模块调用D.数据流(6)在软件开发中,需求分析阶段可以使用的工具是( )。
A.N—s图B.DFD图C.PAD图D.程序流程图(7)在面向对象方法中,不属于“对象”基本特点的是( )。
A.一致性B.分类性C.多态性D.标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。
A.一对一B.一对多C.多对一D.多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是( )。
c语言上机考试训练题库及答案

3000≤s 15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为:f=p*w*s*(1-d),请按照上述标准利用switch语句编写程序计算运费,并画出程序NS图。
#include <stdio.h>
int main()
{
if(i%2==0&&i%3==0&&i%7==0)
printf("%d\n",i);
}
}
26.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#include<stdio.h>
main()
{
char ch;
int z=0,k=0,s=0,q=0;
while((ch=getchar())!='\n')
#include<stdio.h>
void main()
{int i,sum=0;
for(i=100;i<=996;i+=4)
if(i/10%10!=4)
sum+=i;
printf("和为:%d",sum);
}
15.输入一个字符串,统计该字符串的长度以及字母a出现的次数。
#include <stdio.h>
void main()
{int i,j=0;
char ch[ ]=" ";
printf("please input some characters\n");
gets(ch);
for (i=0;ch[i];i++)
一套简单的C语言上机试题及答案详解

C 语言上机模拟试题(附详细答案)1.程序填空题请补充main函数,该函数的功能是:从键盘输入一组字符串,以“*”结束输入,并显示出这个字符串。
例如,输入abcdefghi*,结果显示adcdefghi。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!#include <stdio.h>#include <windows.h>#define N 80main(){int i=-1,j=0;char str[N];system("cls");printf("\n Input a string \n");do{i++;/**********found**********/scanf(___1___);/**********found**********/}while(___2___);printf("\n**display the string** \n");while(j<i){/**********found**********/printf(___3___);j++;}}2.程序修改题下列给定程序中,函数fun()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <conio.h>#include <stdio.h>#include <windows.h>#define MAXLINE 20/**********found**********/fun(char *pstr[6]){int I, j;char *p;for(i=0;i<5;i++){for(j=i+1;j<6;j++)/**********found**********/{if(strcmp(*(pstr+i),pstr+j)>0){p=*(pstr+i);/**********found**********/*(pstr+i)=pstr+j;*(pstr+j)=p;}}}}main(){int I;char *pstr[6],str[6][MAXLINE];system("cls");for(i=0;i<6;i++) pstr[i]=str[i];printf("Enter 6 string(1 string at eachline):\n ");for(i=0;i<6;i++) scanf("%s",pstr[i]);fun(pstr);printf("The strings after sorting:\n ");for(i=0;i<6;i++)printf("%s\n",pstr[i]);}3.程序设计题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
10.编写程序求解用户输入的任意整数N的阶乘值。
11.编写程序,在屏幕上输出九九乘法表。
#include<stdio.h>
main()
{int i,j;
For(i=1;i<=9;i++)
{for(j=1,j<=i;j++)
Printf(“%d*%d=%2d”,i,j,i*j);
#include "stdio.h"
void main()来自{intaprintf("请输入四位数:");
scanf("%d",&a);
if(a%4==0&&a%100!=0)‖(a%400==0))
printf("%d是闰年",a);
else
printf("%d不是闰年",a);}
4.编写程序,计算并输出所有三位整数中能被4整除且十位不是4的数之和,并输出其中的最大数和最小数。
printf("freight =%15.4f\n", f);
6、把一张一百元的人民币换成5元、2元的零钱,有多少种换法?请编写程序,自动给出所有组合的换法。
7、编写程序,输入12个数,按照从后向前的顺序依次找出并输出其中能被7
整除的所有整数以及这些整数的和,在屏幕上输出
8.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
void main()
{
char c[10];
int i,t;
for(i=0;i<10;i++)
scanf("%c",&c[i]);
for(i=9;i>=0;i--)
printf("%c ",c[i]);
}
22. 编写函数sum(int n),用于计算并返回1+2+3+...+n的值,主函数已经给出。
return 0;
}
27.求1+2!+3!+...+20!的和
#include<stdio.h>
main(){
int i=1,j=1;
long int s,sum=0;
for(j=1;j<=20;j++)
{ s=1;//必须每次都初始化,否则结果不对
for(i=1;i<=j;i++)
{ s*=i;}//求阶乘
16.输入一个字符串,统计该字符串的长度,字符串中数字的个数以及字母的个数。
#include <stdio.h>
void main()
{
char ch[ ]=" ";
int l=0,s=0,i;
printf("please input some characters\n");
gets(ch);
for (i=0;ch[i];i++)
{
int c, s;
float p, w, d, f;
scanf("%f %f %d", &p, &w, &s);
if (s >= 3000 )
c =12;
elsec = s / 250;
switch (c)
{
case 0 : d = 0; break;
case 1 : d = 2; break;
case 2 :
9.请补充fun函数,该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回“yes!”,否则返回“no!”。
#include <stdlib.h>
#include <conio.h>
char *fun(int n)
{ int g,s,b;
g=n%10;
s=n/10%10;
#include<stdio.h>
void main()
{int i,sum=0;
for(i=100;i<=996;i+=4)
if(i/10%10!=4)
sum+=i;
printf("和为:%d",sum);
}
15.输入一个字符串,统计该字符串的长度以及字母a出现的次数。
#include <stdio.h>
{
if(ch[i]>='A'&&ch[i]<='Z'||ch[i]>='a'&&ch[i]<='z')l++;
else
{
if(ch[i]>='0'&&ch[i]<='9') s++;
}
}
printf("字符串长度%d,字母出现次数%d,数字出现次数%d\n",i,l,s);
}
17.在字符串数组ch中查找字符串t,如果找到就输出该串在字符串数组中的位置(下标值),未找到就输出“没有找到”。
{
if(ch>='a'&&ch<='z'||ch<='z'&&ch>='a')
{
z++;
}
else if(ch==' ')
{
k++;
}
else if(ch>='0'&&ch<='9')
{
s++;
}
else
{
q++;
}
}
printf("字母= %d,空格= %d,数字= %d,其它= %d\n",z,k,s,q);
void main()
{int i,j=0;
char ch[ ]=" ";
printf("please input some characters\n");
gets(ch);
for (i=0;ch[i];i++)
{if (ch[i]==”a”)
J++;
}
Printf(“字符串长是%d,a出现次数是%d\n”,i,j);}
#include<stdio.h>
void main()
{
int x;
int sum(int n);
scanf("%d",&x);
printf("%d",sum(x));
}
23.请输入两个整数a,b,比较a+b和a×b哪个大,输出判断结果。
24.编写程序,根据输入的学生成绩,给出相应的等级。90分以上的等级为优秀,60分以下的等级为不及格,其余每10分一个等级。程序如下:
b= n/100%10 ; /*求百位数*/
if((g+b)==s)
Return”yes!”;
else
Return”no!”;
}
main( )
{ int num=0;
printf("please inputadata \n");
scanf("%d",&num);
printf("pieasethe resultis:");
}
2 、编写程序,提示用户从键盘输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后在显示器上输出此数,以便验证处理是否正确。
#include<stdio.h>
#include<math.h>
double rounding(double x,int n);
void main()
sum+=s;//求和
}
printf("1+2!+...+20!=%ld\n",sum);
}
28.编程实现求1~1000之间所有奇数的和并输出。
#include<stdio.h>
void main()
{int i,sum=0;
for(i=1;i<=1000;i=i+2)
sum+=i;
printf("奇数和为:%d",sum);
}
#include <stdio.h>
void main()
{
int i;
for(i=350;i<=400;i+=2)
{
if(i%3==2 && i%4==2 && i%5==2 && i%6==2)
printf("%d",i);
}
}
14.编写程序,计算并输出所有三位整数中能被4整除且十位不是4的数之和。
for(i=0;i<5;i++)
{ sum[i]=0;
for(j=0;j<3;j++)
{scanf("%d",&score[i][j]);
average[i]=0;