C语言上机测试题目(完整版)
- 格式:doc
- 大小:63.50 KB
- 文档页数:19
实验一Visual C++6.0的使用及顺序结构程序设计一、实验目的1、掌握启动和退出VC6 的方法。
2、熟悉 VC6 开发环境。
3、初步掌握简单程序的上机操作基本步骤,熟悉 C 单文件程序的输入、编译、链接和运行过程。
4、初步掌握程序的编辑修改和调试。
5、熟练使用赋值运算、算术运算等表达式。
6、熟练使用标准输入、输出函数及各种数据类型的格式说明符。
二、实验内容1、下面C语言程序,其功能是显示字符串“欢迎同学们来到华北水院计算中心!”。
请同学们按照下面的实验指导学习VisualC++6.0的使用。
1 .启动 VisualC++6 .0 开发环境(1)单击开“始”按钮,选择程“序”——〉“Microsoft Visual Studio6.0菜单项,单击“MicrosoftVisualC++6.0”,屏幕出现标题为“当时的提示”的窗口。
(2)单击“结束”按钮,关闭窗口,进入VC6.0 开发环境的主窗口。
2 .使用 Visual C++6.0 对一个 C 程序进行编辑、编译、连接和运行。
⑴分析Visual C++6.0 中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。
⑵步骤①编辑图 1-1 New 对话框编辑是将 C 源程序输入计算机的过程。
在Visual C++6.0 主界面下,点击File 菜单,选择Ne w 菜单项,即可出现New 对话框,如图1-1 所示。
在弹出窗口中的Files 标签页下,选择C++ Sour ce File。
在选项卡右面的File 编辑框里输入文件名如“Exa.c”,在 Location 编辑框里输入文件路径,2如 : \test”。
点击 OK 按钮。
将出现编辑窗口 ,如图 1-2 所示。
在图 1-2 所示的右端编辑窗口里输 入以下 C 源程序并保存文件。
图 1-2 编辑窗口②编译编译是使用系统提供的编译器将文本文件 Exa.c 生成机器语言的过程 ,结果为 Exa.obj ,由于没有 得到系统分配的绝对地址,还不能直接运行,如图 1-3 所示。
1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2:第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a,int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 ||i%11==0)&& i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回. 答案:void fun(int x, int pp[],int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4:第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中”a"到”z"26各字母各自出现的次数,并依次放在pp所指的数组中。
答案:void fun(char *tt, int pp[]){int i;for (i=0;i<26;i++)pp[i]=0;while (*tt){switch (*tt){case ‘a':pp[0]++;break;case ‘b':pp[1]++;break;case ‘c’: pp[2]++;break;case ‘d’: pp[3]++;break;case ‘e’:pp[4]++;break;case ‘f’:pp[5]++;break;case ‘g’: pp[6]++;break;case ‘h’: pp[7]++;break;case ‘i’:pp[8]++;break;case ‘j': pp[9]++;break;case ‘k’: pp[10]++;break;case ‘l': pp[11]++;break;case ‘m’: pp[12]++;break;case ‘n': pp[12]++;break;case ‘o’:pp[14]++;break;case ‘p’: pp[15]++;break;case ‘q’:pp[16]++;break;case ‘r’:pp[17]++;break;case ‘s’:pp[18]++;break;case ‘t':pp[19]++;break;case ‘u’:pp[20]++;break;case ‘v’:pp[21]++;break;case ‘w’: pp[22]++;break;case ‘x':pp[23]++;break;case ‘y’: pp[24]++;break;case ‘z’: pp[25]++;break;}tt++;}}5: 第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中.答案:void fun(int m, int k,int xx[]){int g=0,I,j,flag=1;for(i=m+1;i<m*m;i++){for(j=0;j<I;j++){if(i%j!=0)flag=1;else{flag=0;break;}}if (flag==1 &&j〉=i){if (k>=0){xx[g++]=i;k——;}elsebreak;}}}6:第6题请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符.其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。
计算机二级《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)在数据管理技术发展的三个阶段中,数据共享最好的是( )。
第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
c语言上机考试题库单项选择题1.有char c=’1’,下面说法中正确的是()。
A. 语句putc+2);的输入结果为51B. 语句put“%d”,c+2);的输出结果为3C. 语句put“%c”,c+2);的输入结果为51D. 语句put“%c”,c+2);的输出结果为32.设c1,c2均就是char型变量,则下面不恰当的函数调用为()。
A. scanf(”c1=2=%c”,&c1,&c2);B. get);C. putc2);D. putc1,c2);3.为了表示关系x>=y>=z,下面C语言表达式中正确的是()。
A. (x>=y)&&(y>=z)B. (x>=y)and(y>=z)C. (x>=y>=z)D. (x>=y)&(y>=z)4.设x,y,z,t为int型变量,则继续执行以下语句后,t的值()。
x=y=z=1;t=++x||++y&&++z;A. 不定值B. 2C. 1D. 05.对if语句中表达式的类型,下面正确的说法是()。
A. 必须就是关系表达式B. 必须是关系表达式或逻辑表达式C. 可以就是任一表达式D. 必须是关系表达式或算术表达式6.对for(表达式1;;表达式3)可以认知为()。
A. for(表达式1;0;表达式3)B. for(表达式1;表达式1;表达式3)C. for(表达式1;1;表达式3)D. for(表达式1;表达式3;表达式3)7.执行语句for(i=1;i++<4;);之后,变量i的值为()。
A. 3B. 4C. 5D. 不确定8.若二维数组a存有m列,则在a[i][j]前的元素个数为()。
A. j*m+iB. i*m+jC. i*m+j-iD. i*m+j+19.下面说法中正确的是()。
A. 在C语言中,可以采用动态内存分配技术,定义元素个数气门的数组B. 在C语言中,数组元素的个数可以不确定,允许随即变动C. 在C语言中,数组元素的数据类型可以不一致D. 在C语言中,定义数组后,就确定了它能容纳的相同数据类型元素的个数10.无法把字符串:“good!”参数值数组b的语句就是()。
大一c语言机试试题库及答案一、选择题1. C语言中,用于定义一个函数的关键字是______。
A. intB. voidC. functionD. return答案:A2. 下列哪个选项是正确的C语言变量声明?A. int a;B. int a=;C. int = a;D. int a=b;答案:A3. C语言中,用于表示逻辑“与”运算的符号是______。
A. &&B. ||C. !D. =答案:A4. 下列哪个选项是C语言中的合法整数常量?A. 123B. 0x1AC. 1.23D. 0123答案:A5. C语言中,用于表示字符'A'的ASCII码值的常量是______。
A. '65'B. 'A'C. "65"D. "A"答案:B二、填空题1. C语言中,用于定义一个结构体的关键字是______。
答案:struct2. C语言中,表示逻辑“非”运算的符号是______。
答案:!3. C语言中,用于定义一个枚举类型的关键字是______。
答案:enum4. C语言中,用于定义一个联合体的关键字是______。
答案:union5. C语言中,用于定义一个指针的关键字是______。
答案:*三、编程题1. 编写一个C语言程序,计算并输出100以内的奇数之和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 != 0) {sum += i;}}printf("Sum of odd numbers from 1 to 100 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现字符串的反转。
```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str); return 0;}```。
一、填空题考试做题要求:1、在__1__处填写正确的答案,并将下划线和数字删除。
2、将题目做完之后一定要保存。
3、不能删除/**********found**********/,也不能多行或少行。
1、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。
当调用正确时, 程序输出:x1=5.000000, x2=3.000000,x1*x1+x1*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include <stdio.h>double f1(double x){ return x*x; }double f2(double x, double y){ return x*y; }/**********found**********/__1__ fun(int i, double x, double y){ if (i==1)/**********found**********/return __2__(x);else/**********found**********/return __3__(x, y);}main(){ double x1=5, x2=3, r;r = fun(1, x1, x2);r += fun(2, x1, x2);printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n\n",x1, x2, r);}2、程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。
#include <stdio.h>#include <string.h>struct student {long sno;char name[10];float score[3];};void fun(struct student a[], int n){ /**********found**********/__1__ t;int i, j;/**********found**********/for (i=0; i<__2__; i++)for (j=i+1; j<n; j++)/**********found**********/if (strcmp(__3__) > 0){ t = a[i]; a[i] = a[j];a[j] = t; }}main(){ struct student s[4]={ {10001,"ZhangSan", 95, 80, 88}, {10002,"LiSi", 85, 70, 78}, {10003,"CaoKai", 75, 60, 88},{10004,"FangFang", 90, 82, 87}};int i, j;printf("\n\nThe original data :\n\n");for (j=0; j<4; j++){printf("\nNo:%ldName:%-8sScores: ",s[j].sno, s[j].name);for (i=0; i<3; i++)printf("%6.2f ", s[j].score[i]);printf("\n");}fun(s, 4);printf("\n\nThe data after sorting:\n\n");for (j=0; j<4; j++){ printf("\nNo: %ld Name: %-8sScores: ",s[j].sno, s[j].name);for (i=0; i<3; i++)printf("%6.2f ", s[j].score[i]);printf("\n");}}3、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。
上机编程题的最大值,并将该数以格式"%.3f"写到1. 对x=1,2,...,10,求函数f(x)=x-10*cos(x)-5*sin(x)考生目录下的新建文件design1.dat中。
#include <stdio.h>#include <math.h>void main(){ FILE *p; float f(float),max,x;p=fopen("design1.dat","w");max=f(1);for(x=2;x<=10;x++)if(f(x)>max) max=f(x);fprintf(p,"%.3f",max);fclose(p);}float f(float x){y=y-10*cos(y)-5*sin(y);return (y);},若x、y取值为区间[1,6]的整数,找出使z取最小值的x1、y1,2. z=f(x,y)=(3.14*x-y)/(x+y)并将x1、y1以格式"%d,%d"写入到考生目录下的新建文件design1.dat中。
#include <stdio.h>void main(){ FILE *p; float f(float x,float y),min;int x,y,x1,y1;p=fopen("design1.dat","w");min=f(1,1);for(x=1;x<=6;x++)for(y=1;y<=6;y++)if(f(x,y)<min){min=f(x,y); x1=x;y1=y;}fprintf(p,"%d,%d",x1,y1);fclose(p);}float f(float u,float v){ return (3.14*u-v)/(u+v); }若x,y取值为区间[0,10]的整数,找出使z取最小值的3. z=f(x,y)=10*cos(x-4)+5*sin(y-2),x1,y1,并将x1、y1以格式"%d,%d"写入到考生目录中Paper子目录下的新建文件design1.dat中。
C 语言上机考试题(第一套)1.编写函数fun ,它的功能是:计算并输出下列级数和:)1(1321211+⨯++⨯+⨯=n n S例如,当n = 10时,函数值为:0.909091注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
试题程序:#include <conio.h>#include <stdio.h>double fun( int n ){float…………}main() /*主函数 */{ clrscr();printf(″%f\n ″, fun(10));}解答:#include <conio.h> #include <stdio.h> double fun( int n ) { double s=0; int i; for(i=1;i<n+1;i++) s+=1.0/(i*(i+1)); return s; } main() /*主函数 */ { system("cls"); printf("%f\n",fun(10)); }说明:主函数中的clrscr()函数为TC 下使用的清屏函数,在VC 中不能使用,在本题中可以直接删除或改为system("cls")2.在[10000, 20000]范围内考察个位数字是7的素数, 问:(1) 这样的素数有多少个?(2) 其中最大的一个等于几?解答:#include <stdio.h>int main(void){int max,num=0;int i,j;for(i=10000;i<20001;i++){for(j=2;j<i;j++)if( i%j==0 )break;if( j==i && i%10==7){num++;max=i;}}printf("num=%d,max=%d\n",num,max);return 0;}3. 编写程序,从键盘输入一年份,判断该年份是否为闰年。
C语言上机考试编程题以及答案1、求1+2+3+……….+100。
(循环)答案#include<stdio.h>void main(){int i,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("%d",sum);}2、求1*2*3*……….*10。
(循环)答案void main(){int i=0,j=1;for (i=2;i<=10;i++){j*=i;}printf("%d",j);return 0;}3、输入三个数字,输出他们的最大值。
(if)答案#include<stdio.h>void main(){int a,b,c,d;scanf("%d,%d,%d",&a,&b,&c);d=max(a,b,c);printf("max=%d",d);getch();/*暂停看运行结果*/}int max(int x,int y,int z){int u;if(x>=y&&x>=z)u=x;else if(y>=x&&y>=z)u=y;elseu=z;return(u);4.用起泡法对十个数据排序(数组实现)答案#include<stdio.h>main ( ){ int i,j,t;static int a[10]={5,7,4,2,3,6,1,0,9,8};for(j=0;j<9;j++){ for(i=0;i<9-j;i++){ if(a>a){ t=a;a=a;a=t ;}}}for(i=0;i<10;i++)printf("%2d",a);}5、输入十个数字,逆序输出。
(数组实现)答案#include<stdio.h>main(){int a[10],i=0;for(i=0;i<=9;i++)scanf("%f",&a);printf("\n");for(i=9;i>=0;i--)printf("%f",a);}6输入两个数,交换他们的值并输出。
c语言上机考试题及答案一、选择题(每题2分,共10分)1. 在C语言中,以下哪个是合法的整型常量?A. 0x12B. 0x12.0C. 0x12LD. 0x12.0L答案:A2. 下列哪个选项是正确的C语言标识符?A. 2variableB. variable2C. variable-2D. variable_2答案:D3. C语言中,以下哪个是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World'D. 'Hello, World'答案:A4. 在C语言中,以下哪个是正确的函数声明?A. int myFunction(int a);B. int myFunction();C. int myFunction(int);D. int myFunction(int a, int b);答案:A5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. 以上都是答案:D二、填空题(每题3分,共15分)1. 在C语言中,用于定义整型变量的关键字是________。
答案:int2. 若有定义 int a = 10;,则表达式 a++ 的值为________。
答案:103. C语言中,用于表示逻辑“与”的运算符是________。
答案:&&4. 在C语言中,以下代码段的输出结果是________。
```c#include <stdio.h>int main() {int x = 5;printf("%d", x++);return 0;}```答案:55. 若有定义 float b = 3.14;,则表达式 b * 100 的值为________。
答案:314.0三、编程题(每题20分,共40分)1. 编写一个C程序,计算并输出以下数列的前10项之和:1 + 1/2 + 1/3 + ... + 1/10。
c上机考试试题# C上机考试试题一、单项选择题(每题2分,共20分)1. 下列关于C语言基本数据类型的说法中,错误的是()。
- A. `int` 类型通常用于表示整数- B. `float` 类型用于表示单精度浮点数- C. `double` 类型用于表示双精度浮点数- D. `char` 类型用于表示一个字符或整数2. 在C语言中,用于定义数组的关键字是()。
- A. `define`- B. `array`- C. `list`- D. `int[]`3. C语言标准输入输出使用的库函数是()。
- A. `<stdio.h>`- B. `<math.h>`- C. `<stdlib.h>`- D. `<iostream>`4. 下列哪个是C语言中的合法标识符?()- A. `class`- B. `case`- C. `2b`- D. `user_name`5. C语言中,用于实现字符串连接的函数是()。
- A. `strcpy()`- B. `strcat()`- C. `strlen()`- D. `strncpy()`6. 在C语言中,`printf` 函数的返回类型是()。
- A. `int`- B. `float`- C. `char`- D. `void`7. 下列关于C语言函数的描述中,错误的是()。
- A. 函数可以返回一个值- B. 函数可以没有返回值- C. 函数必须有返回值- D. 函数可以有多个返回值8. 在C语言中,用于计算两个整数的最大值的宏定义在哪个头文件中?()- A. `<math.h>`- B. `<stdlib.h>`- C. `<limits.h>`- D. `<stdio.h>`9. C语言中,`break` 语句的作用是()。
- A. 跳出整个循环- B. 跳出最近的一个循环- C. 跳出整个程序- D. 继续下一次循环10. 下列关于C语言结构体的描述中,错误的是()。
c语言上机试题库及答案1. 题目一:字符串翻转要求:编写一个C语言程序,实现字符串的翻转功能。
```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);char temp;for(int i = 0; i < len / 2; i++) {temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("Enter a string: ");scanf("%s", str);reverseString(str);printf("Reversed string: %s\n", str);return 0;}```2. 题目二:计算数组中的最大值要求:编写一个C语言程序,计算并输出一个整数数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {10, 45, 23, 67, 89, 34};int size = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, size);printf("The maximum value in the array is: %d\n", max); return 0;}```3. 题目三:实现二分查找要求:编写一个C语言程序,实现一个二分查找算法,查找一个有序数组中是否存在目标值。
C语言上机题库WORD版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 dd“,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 #include int main(void) { char c1,c2; scanf(“c“,c1); c2=c1+32; printf(“c“,c2); } 3.16输入两个整数分别赋值给变量a和b,将a和b的值互换,输出a、b的值。
二级C语言上机考试题库及答案1. 题目:编写一个C语言程序,实现输入一个整数,判断其是否为素数,并输出结果。
程序代码如下:```c#include <stdio.h>#include <math.h>int isPrime(int num) {if (num <= 1) return 0;for (int i = 2; i <= sqrt(num); i++) {if (num % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。
\n", num);} else {printf("%d 不是素数。
\n", num);}return 0;}答案:该程序首先定义了一个判断素数的函数`isPrime`,它通过遍历2到`sqrt(num)`之间的所有整数,检查是否有能整除`num`的数。
如果找到,则`num`不是素数。
在`main`函数中,程序提示用户输入一个整数,然后调用`isPrime`函数判断该数是否为素数,并输出相应的结果。
2. 题目:编写一个C语言程序,实现一个简单的学生成绩管理系统,要求能够添加学生信息、查询学生信息、删除学生信息和显示所有学生信息。
程序代码如下:```c#include <stdio.h>#include <stdlib.h>typedef struct {char name[50];int score;} Student;Student students[100];int count = 0;void addStudent(const char* name, int score) {if (count < 100) {strcpy(students[count].name, name);students[count].score = score;count++;} else {printf("学生信息已满。
(完整版)C语言上机练习题及答案1输入三个整数x,y,z,把这三个数由小到大输出。
# includevoid main(){int x,y,z,a;scanf ("%d,%d,%d",&x,&y,&z);if(x>y) {a=x; x=y;y=a;}if(x>z) { a=x; x=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",x,y,z);}2输入圆的半径,输出圆的周长和面积。
# include# define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。
# includevoid main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。
# includeint main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。
1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h>void main(){int i,j,k;for(i=1;i<=4;i++)for(j=1;j<=4;j++)for(k=1;k<=4;k++)if(i!=j&&i!=k&&j!=k)printf("%d%d%d ",i,j,k);printf("\n");}2.企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?#include <stdio.h>main(){ long i;float bonus, bon1, bon2, bon4, bon6, bon10;int c;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;printf("请输入利润i:");scanf("%ld",&i);c=i/100000;if(c>10) c=10;switch(c){ case 0: bonus=1*0.1;break;case 1: bonus=bon1+(i-100000)*0.075;break;case 2 :case 3: bonus=bon2+(i-200000)*0.05; break;case 4:case 5: bonus=bon4+(i-400000)*0.03;break;case 6:case 7:case 8:case 9: bonus=bon6+(i-600000)*0.015;break;case 10: bonus=bon10+(i-1000000)*0.01;}printf("奖金是%10.2f",bonus);}3.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#include<stdio.h>#include<math.h>void main(){int a,b,c;for(a=0;;a++){ b=sqrt(a+100);c=sqrt(a+268);if(b*b==a+100 && c*c==a+268){printf("%d\n",a);break;}}}4.输入某年某月某日,判断这一天是这一年的第几天?main(){int day,month,year,sum,leap;printf("\nplease input year,month,day\n");scanf("%d,%d,%d",&year,&month,&day);switch(month)/*先计算某月以前月份的总天数*/case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf("data error");break;}sum=sum+day; /*再加上某天的天数*/if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ leap=1;elseleap=0;if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum++;printf("It is the %dth day.",sum);}5.输入三个整数x,y,z,请把这三个数由小到大输出。
main(){int x,y,z,t;scanf("%d%d%d",&x,&y,&z);if (x>y){t=x;x=y;y=t;} /*交换x,y的值*/if(x>z){t=z;z=x;x=t;}/*交换x,z的值*/if(y>z){t=y;y=z;z=t;}/*交换z,y的值*/printf("small to big: %d %d %d\n",x,y,z);}6.用*号输出字母C的图案。
#include "stdio.h"main(){printf("Hello C-world!\n");printf(" ****\n");printf(" *\n");printf(" * \n");printf(" ****\n");}7.输出9*9口诀。
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
2.程序源代码:#include "stdio.h"main(){int i,j,result;printf("\n");for (i=1;i<10;i++){ for(j=1;j<10;j++){result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/}printf("\n");/*每一行后换行*/}}8.有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?main(){long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){ printf("%12ld %12ld",f1,f2);if(i%2==0) printf("\n");/*控制输出,每行四个*/f1=f1+f2; /*前两个月加起来赋值给第三个月*/f2=f1+f2; /*前两个月加起来赋值给第三个月*/}}9.题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
2.程序源代码:#include "math.h"main(){int m,i,k,h=0,leap=1;printf("\n");for(m=101;m<=200;m++){ k=sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0){leap=0;break;}if(leap) {printf("%-4d",m);h++;if(h%10==0)printf("\n");}leap=1;}printf("\nThe total is %d",h);}10.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
#include"math.h"main(){int x=100,a,b,c;while(x>=100&&x<1000) {a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b;if(x==(pow(a,3)+pow(b,3)+pow(c,3))) printf("%5d",x);x++;}}11.将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
2.程序源代码:/* zheng int is divided yinshu*/main(){int n,i;printf("\nplease input a number:\n");scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i++){while(n!=i){if(n%i==0){ printf("%d*",i);n=n/i;}elsebreak;}}printf("%d",n);}12.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
2.程序源代码:main(){int score;char grade;printf("please input a score\n");scanf("%d",&score);grade=score>=90?'A':(score>=60?'B':'C');printf("%d belongs to %c",score,grade);}13.题目:输入两个正整数m和n,求其最大公约数和最小公倍数。