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所示。
图1-3 编译源程序
图1-4编译结果
图1-5编译成功
③连接
连接是将目标文件转换为可执行文件的过程。如图1-6所示选择Build菜单下的Build。连接无错时,将目标文件连接为。
图1-6 源程序
④运行
运行是执行可执行文件,屏幕输出运行结果。如图1-7所示选择Build菜单下的Execute。
图1-7 运行程序
运行结果如图1-8所示:
图1-8运行结果
3.关闭系统工作区空间
单击“文件︱关闭工作区”菜单命令,关闭系统工作区空间。此时读者可以开始输入调试第(2) 个C程序文件。
4.退出开发环境
单击主窗口右上角的“关闭”按钮,退出。
2、验证程序,熟悉编程环境及调试程序的步骤。
已知三角形三条边长a,b,c,计算三角形面积公式为:
s=*(a+b+c)
s
area-
s
-
=
a
-
b
)(
)
s
)(
(c
s
编写程序,要求从键盘输入a,b,c的值,计算并输出三角形面积。其中源程序代码如下:#include<>
#include<>
void main()
{
double a,b,c,s,area;
printf("input a,b,c:");
scanf("%lf,%lf,%lf",&a,&b,&c);
打印100-200之间的所有素数(按照每行5个显示)
程序代码:
对程序进行测试,并观察运行结果。将程序的运行情况写在下面。
『运行结果:』
2. 编程输出如下上三角形式的九九乘法表。
1 2 3 4 5 6 7 8 9
- - - - - - - - -
1 2 3 4 5 6 7 8 9
4 6 8 10 12 14 16 18
9 12 15 18 21 24 27
16 20 24 28 32 36
25 30 35 40 45
36 42 48 54
49 56 63
64 72
81
程序代码:
对程序进行测试,并观察运行结果。将程序的运行情况写在下面。
『运行结果:』
三、问题讨论
break语句和continue语句在循环结构中使用时有何区别?举例说明。
四、实验总结
1 总结本次实验完成情况、相关知识掌握情况
2 总结本次实验编辑、编译、连接、运行所取得的经验
3 分析本次实验出现的主要错误最直接原因
实验四使用数组的程序设计
一、实验目的
1、正确理解数组的概念,熟练掌握一维数组和二维数组的定义和初始化方法。
2、熟练掌握字符数组和字符串的区别和使用、字符串函数的使用。
3、熟练掌握一维数组、二维数组以及字符串的输入和输出方法。
4、了解数组的地址、数组元素的地址及一维数组和二维数组的存储结构。
5、掌握字符串的结束标志,正确使用字符串的结束标志对字符串进行处理。
6、通过编程和调试程序,加深对数组、字符数组和字符串函数应用的理解。
7、实验前复习数组、字符数组和字符串函数的概念。
二、实验内容
1、打印fabonacci数列的前20项,该数列前两项为1,以后各项均为前相邻两项之和。
程序代码:
#include <>
void main()
{long int f[20]={1,1};
int j;
for(j=2;j<20;j++)
f[j]=f[j-1]+f[j-2];
for(j=0;j<20;j++)
{printf("%15ld",f[j]);
if((j+1)%5==0)
printf("\n");
}
}
对程序进行测试,并观察运行结果。将程序的运行情况写在下面。
『运行结果:』
2、从键盘输入一个班学生(最多30人)的成绩,然后按降序进行排列。#include <>
#define N 5
void main()
{int a[N],i,j,t;
printf("input scores of students:",N);
for(i=0;i scanf("%d,",&a[i]); for(i=0;i for(j=0;j if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("the sorted scores:\n"); for(i=0;i printf("%10d",a[i]); printf("\n"); } 3、 程序代码: 对程序进行测试,并观察运行结果。将程序的运行情况写在下面。 c『运行结果:』 3、编写一个程序,利用字符数组实现两个字符串的比较。 (注意不能使用字符串比较函数strcmp()) #include <> #define n 7 void main() {char s1[n],s2[n]; int i; printf("input %d characters\n",n); scanf("%s\n",s1); scanf("%s\n",s2); if(s1!=s2) {for(i=0);i {if(s1[i]>s2[i]) {printf("%s>%s",s1,s2); break;} else if(s1[i] {printf("%s<%s",s1,s2); break;} else continue;} } else printf("%s=%s",s1,s2); } 程序代码: 对程序进行测试,并观察运行结果。将程序的运行情况写在下面。 『运行结果:』 三、问题讨论 1使用%s格式符输入字符串到数组时能否将空格符输入?如果不能该如何使用其它方法解决?举例说明 2数组在“定义”时和“引用”时所带的下标有何区别? 四、实验总结 需多操作才能熟练掌握各种C语言. 1 总结本次实验完成情况、相关知识掌握情况 2 总结本次实验编辑、编译、连接、运行所取得的经验 3 分析本次实验出现的主要错误最直接原因 实验五函数与编译预处理 一、实验目的 1、掌握函数定义及调用的方法,正确理解函数调用时实参和形参的对应关系; 2、掌握并正确使用数组作为函数参数; 3、掌握函数的嵌套调用和递归调用的方法; 4、理解变量的作用域和生存期; 5、掌握宏定义、文件包含。 二、实验内容 1、分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。 #include <> int fun(int k) { int result=1,i; for(i=1;i<=k;i++) { result=result*i; } return result; } void main() { int n; printf("Input n please(1<=n<=10)"); scanf("%d",&n); printf("%d!=%d\n",n,fun(n)); } 『运行结果:』 2、编写程序,输出2~n之间的所有素数,n由键盘输入。要求判断素数的过程要写在函数中,由主函数调用实现,并写出2组以上程序运行结果。 程序代码: #include<> #include<> void main() { int i,j,k,n,m=0; printf("input n please!\n"); scanf("%d",&n); for(i=2;i<=n;i++) { j=sqrt(i); for(k=2;k<=j;k++) if(i%k==0) break; if(k>j) {m++; printf("%3d",i); if(m%10==0) printf("\n"); } } } 『运行结果:』 3、编程实现输入8个学生某门功课的成绩,用函数求出平均分,并在主函数中输出平均分以及高于平均分的同学的成绩。并写出2组以上程序运行结果。 程序代码: #include<> float average(float x[8]) { float sum; int k; sum=x[0]; for(k=1;k<8;k++) { sum=sum+x[k]; } return(sum/8); } void main() { float cj[8],aver; int m,j; printf("input scores of eight students:\n"); for(j=0;j<8;j++) scanf("%f",&cj[j]); aver=average(cj); for(m=0;m<8;m++) { if(cj[m]>aver) printf("高于平均分:%f\n",cj[m]); } printf("average=%6.2f\n",aver); } 运行结果:』 三、问题讨论 1、举例说明自动变量和静态变量的区别。 2、 答:自动变量是指那些当程序的流程转到该函数时才开辟的单元,执行后又立即释放的变量。静态变量则是指在整个程序运行期间分配固定存储空间的变量。 四、实验总结 1 总结本次实验完成情况、相关知识掌握情况 2 总结本次实验编辑、编译、连接、运行所取得的经验 3 分析本次实验出现的主要错误最直接原因 答:1.实验完成,知识还未完全掌握。 2.要注意书写格式的正确。 3.主要原因是对知识的不理解。 实验六使用指针的程序设计 一、实验目的 6、掌握指针的概念,会定义和使用指针变量; 7、能正确使用数组的指针和指向数组的指针变量; 8、熟悉指针作为函数参数的定义和调用方法; 9、能正确使用字符串的指针和指向字符串的指针变量。 二、实验内容 1.分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。 #include <> void main() { int *p1,*p2,*p; int a,b; printf("Input a b please"); scanf("%d%d",&a,&b); p1=&a; p2=&b; if(a>b) { p=p1;p1=p2;p2=p;} printf("*p1=%d, *p2=%d\n",*p1,*p2); printf("a=%d, b=%d\n",a,b); } 『运行结果:』 2.下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给了数组 中数据的个数,利用指针odd返回奇数之和,利用指针even返回偶数之和。请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。 #include <> #define N 10 void fun(int *a,int n,int *odd,int *even) { } void main() { int a[N]={1,10,2,3,19,6},i,n=6,odd,even; printf("The original data is:\n"); for(i=0;i printf("%5d",*(a+i)); printf("\n\n"); fun(a,n,&odd,&even); printf("The sum of odd numbers:%d\n",odd); printf("The sum of even number:%d\n",even); } 『运行结果:』 3.编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现删除字符串 str中和字符ch相等所有字符,然后输出字符串str。运行程序并写出2组以上程序运行结果。 程序代码: 『运行结果:』 三、问题讨论 1. 简述字符串数组和字符指针的区别,举例说明。 四、实验总结 1 总结本次实验完成情况、相关知识掌握情况 答:通过本次实验我学习了关于指针的一些应用和怎样用指针来解决一些实际问题。 2 总结本次实验编辑、编译、连接、运行所取得的经验 3 分析本次实验出现的主要错误最直接原因 答:对课本上的知识记忆的不够牢固,对一些知识似懂非懂的,理解的不清楚。还有就是对计算机的的操作不够熟练,操作起来很慢,还经常出错。以后需加强练习。 实验七、结构体程序设计 一、实验目的 1.掌握结构体类型变量和数组、共用体类型变量和数组以及枚举类型变量的定义和使用。 2.掌握链表的基本,初步学会对链表进行操作。 3.通过编程和调试程序,加深对结构体和共用体概念的理解。 4.实验前复习结构体类型、共用体类型和枚举类型的概念。 二、实验内容及步骤: 编程题:某单位进行选举,有5位候选人:zhang、wang、li、zhao、liu。编写一个统计每人得票数的程序。要求每个人的信息使用一个结构体表示,5个人的信息使用结构体数组。 程序代码: #include <> #include <> #define M 5 #define N 10 struct per {char name[20]; int t; }leader[M]={"zhang",0,"wang",0,"li",0,"zhao",0,"ma",0}; void main() {int i,j; char sec[20]; for(i=0;i {printf("%d please input your result:",i+1); scanf("%s",sec); for(j=0;j {if(strcmp(leader[j].name,sec)==0) leader[j].t++;}} printf("the result:\n"); for(j=0;j printf("%s\t%d\n",leader[j].name,leader[j].t); } 对程序进行测试,并观察运行结果。将程序的运行情况写在下面。 『运行结果:』 2、编程题:设张三20岁、李四22岁、王平23岁,编程输出3人中年龄最小者的姓名和年龄。 程序代码: #include <> #define N 3 struct peo {char name[20]; int old; }people[N]={"张三",20,"李四",22,"王平",23}; void main() {int i=0,min=people[0].old,t=0; for(;i {if(people[i].old {min=people[i].old; t=i;}} printf("姓名:%s\n年龄:%d\n",people[t].name,min); } 对程序进行测试,并观察运行结果。将程序的运行情况写在下面。 『运行结果:』 三、问题讨论 1、结构体变量何时可以整体引用,何时只能引用结构体成员变量? 2、结构体和数组有什么区别? 答:‘结构体’是一种构造类型,它是由若干成员组成的。每一个可以是一个基本数据类型或者可以又是一个构造类型。结构体既然是一种构造而成的数据类型,那么在说明和使用之前必须先定义它。如同定义函数一样。 四、实验总结 1 总结本次实验完成情况、相关知识掌握情况 2 总结本次实验编辑、编译、连接、运行所取得的经验 3 分析本次实验出现的主要错误最直接原因 2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a 赋给c。(提示:用条件运算符) 答案: #include C语言历年考题真题解析 This model paper was revised by the Standardization Office on December 10, 2020 语言规定,在一个源程序中main函数的位置 ______ 。(2010年春选择题第21题) A.必须在最开始 B.必须在最后 C.必须在预处理命令的后面 D.可以在其他函数之前或之后 【解析】main函数也叫主函数,是C语言编译系统提供的特殊函数,可以放在程序中的任何位置,但不能定义在其他函数体内。C程序总是从main函数的第一条语句开始执行。 【答案】D 2.以下叙述中正确的是________ 。(2009年秋选择题第21题) 语言系统以函数为单位编译源程序 函数必须放在程序开始 C.用户定义的函数可以被一个或多个函数调用任意多次 D.在一个函数体内可以定义另外一个函数 【解析】C语言系统以程序为单位编译源程序,程序由函数组成。main函数可以放在其他函数之前或之后。除了main函数外,函数可以被其他函数多次调用。函数不能定义在其他函数体内,即不能嵌套定义。 【答案】C 3.以下叙述中正确的是_________ 。(2008年秋选择题第21题) A.在编译时可以发现注释中的拼写错误 语言程序的每一行只能写一条语句 (){}必须位于程序的开始 语言程序可以由一个或多个函数组成 【解析】C程序的注释不产生编译代码,编译时跳过去,发现不了其中错误。C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。main函数可以放在程序中的任何位置。C程序可以由一个或多个函数组成,函数可以为空函数,包括main函数。 【答案】D 4.以下关于C语言源程序的叙述中错误的是________。(2007年春选择题第21题) A.一个C源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义 B.函数定义由函数头部和函数体两部分组成 C.在一个函数定义的函数体中允许定义另一个函数 D.在一个函数定义的函数体中允许调用另一个函数或调用函数自身 【解析】一个C语言源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义,函数定义由函数头部和函数体两部分组成。函数可以嵌套调用也可以递归调用,但不能嵌套定义。C的意思是嵌套定义,错误,D的意思是嵌套调用和递归调用,正确。 【答案】C 基本数据类型 1.以下选项中,___________ 是C语言关键字。 (2010年春选择题第22题) 【解析】default是关键字,用在switch语句中。printf和include属于预定义标识符,其中printf是输出函数名,include用在预编译处理命令中。fun是用户自定义标识符。 实验一: 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 C语言模拟试题 一、判断 1、关系运算符<= =与= =的优先级相同。(N ) 2、C语言的函数可以嵌套定义。(N ) 3、若有定义和语句:int a;char c;float f;scanf(“%d,%c,%f”,&a,&c,&f);若通过键盘输入:10,A,12.5, 则a=10,c=?A?,f=12.5.( Y ) 4、变量根据其作用域的范围可以分作局部变量和全局变量。( Y ) 5、#define和printf都不是C语句。( Y ) 6、Int I,*p=&I;是正确的C说明。( Y ) 7、结构体类型只有一种。( N ) 8、在Turbo C中,整形数据在内存中占2个字节。( N ) 9、一个include命令可以指定多个被包含的文件。( N ) 10、有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是*(p+8).( Y ) 二、选择 2、C语言中,char类型数据占(A) A、1个字节 B、2个字节 C、4个字节 D、8个字节 3、已知x=43,ch=?A?,y=o;则表达式(x>=y&&ch1;i--) for(j=1;j 第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数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说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交 考试时间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个 实验四循环结构程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、熟练掌握while语句、do-while语句和for语句。 2、练习并掌握循环结构的嵌套形式。 3、掌握循环结构的程序设计方法。 三、实验内容:说明:前四题为必做题目,后两题为选做题目。 1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结 束输入。(实验指导书P41) 2、求所有的水仙花数。水仙花数是一个3位数的自然数,该数各位数的立方和等于该数 本身。(实验指导书P42) 3、判断输入的某个数是否为素数。若是,输出YES,否则输出NO。(实验指导书P167) 4、计算π的近似值。公式如下:π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小 于10-6为止。(实验指导书P169) 5、计算1!+2!+……+n! 的值,n值由键盘输入。(实验指导书P176) 6、输入10个整数,统计并输出其中正数、负数和零的个数。 四、实验答案:(代码+运行结果截屏) 实验五综合实验1:结构化程序设计(2学时) 一、实验方式:一人一机 二、实验目的: 1、进一步掌握选择结构、循环结构的编程特点。 2、掌握C语言的结构化程序设计思想。 3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。 三、实验内容:说明:前两题为必做题目,后两题为选做题目。 1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。设: 90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。(实验指导书P162) 2、百马百担问题。(实验指导书P45) 3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 4、输出如下图案: * *** ***** ******* ***** *** * 四、实验答案:(代码+运行结果截屏) 精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a 答案仅供参考 实验一 4.设计main函数实现从键盘上输入两个整型变量a、b的值,交换它们的值并输出。#include printf("x=%d,y=%d\n",x,y); getch(); } 实验二 1.编写程序,从键盘上输入一个整数(例如560)表示分钟,将其换算成用小时和分钟表示,然后输出至屏幕。 #include 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 专升本C语言历年考试题及答案 一、单项选择题 1. ___D___是合法的用户自定义标识符。 A、 b-b B、float C、 fun(int a, int b, int c) { c =a*b; } void main( ) { int c; fun(2,3,c); printf(”%dn”,c); } A、0 B、1 C、6 D、无法确定 10. 在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。 A、int B、double C、void D、char 11. 表达式 strlen(”hello”) 的值是___B____。 A、 4 B、 5 C、 6 D、 7 12. 设变量定义为“int a[4];”,则表达式__D____不符合C语言语法。 A、*a B、a[0] C、a D、a++ 13. 设变量定义为“int x, *p=&x;”,则&*p相当于__A___。 A、p B、*p C、x D、*&x 14. 若变量已正确定义,_A___不能使指针p成为空指针。 A、p=EOF B、p=0 C、p=’’ D、p=NULL 15. 对于以下的变量定义,表达式__D____不符合C语言语法。 struct node { int len; char *pk; 实验一上机操作初步 (2 学时 ) 一、实验方式:一人一机 二、实验目的: 1、熟悉 VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个 C 程序。 3、初步了解 C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息: ( 实验指导书 P79) ************************* Very Good ************************* 2、计算两个整数的和与积。( 实验指导书 P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。 ( 书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include <> void main( ) {printf( printf( printf( “ ********************\n “Very Good\n” ); “ ********************\n ” ); ” ); } 2、#include <> void main( ) {int a,b,c,d; printf( “ Please enter a,b: ”); scanf( “%d,%d” ,&a,&b); c=a+b; d=a*b; printf( “ %d+%d=%d\n” ,a,b,c); printf( “ %d*%d=%d\n” ,a,b,d); } 3、#include <> #include <> void main( ) { double x,s; printf( “ Please input value of x: ”); scanf( “%lf ” ,&x); s=cos(x); printf( “ cos(%lf)=%lf\n ”,x,s); } 4、#include <> void main( ) { printf( “ ==================================\n”); printf( “ 1 输入数据 2 修改数据 \n ”); printf( “ 3 查询数据 4 打印数据 \n ”); printf( “ ===================================\n”); } 5、#include <> void main( ) { int x,y,t; printf( “ Please enter x and y: ”); scanf( “%d%d”,&x,&y); t=x; x=y; y=t; printf( “ After swap:x=%d,y=%d\n ” ,x,y); } 实验二简单的 C程序设计 (4 学时 ) 一、实验方式:一人一机 二、实验目的: 1、掌握 C语言的数据类型。 2、学会使用 C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。 第五套 一、判断题 1.(F)在一个c程序中,main函数必须出现在所有函数之前。 2.(F)#include”stdio.h”是每个程序中必须写的。 3.(F)c程序总是从程序的第一条语句开始执行的。 4.(F)以下各数均不是合法的八进制数:256,03A2,-0127。 5.(F)语句scanf(“%7.2f”,&a):是一个合法的scanf函数。 6.(T)整数-32100可以赋值给int型和long int型变量。 7.(F)表达式(j=3,j++)的值是4. 8.(F)在c程序中,赋值运算符的优先级最低。 9.(F)7&3+12的值是15. 10.(F)若a是实型变量,在执行了a=5后,a将变为整型变量。 11.(F)若有i=10,j=2:则执行完i*=j+8:后i的值是28. 12.(F)若a是实型变量,c程序中允许以下赋值a=10:因此实型变量中允许存放整型变量。 13.(T)在c语言中,逻辑“真”等价于不等于0的数。 14.(F)开关语句switch最多可以形成3个分支. 15.(T)Int a=1,b=2,c=3:if(a>c)b=a:a=c:c=b:则c的值是2. 16.(T)Int i=3,j=5:if(i>j):是正确的。 17.(F)若有i=10,j=0:则执行完语句if(j=0):i++:elsei --:i的值为11 18.(T)break语句只能用于循环语句switch-case语句中。 19.(T)若有说明int c:则while(c=getchar()):是正确的c语句。 20.(T)Int a[10]:for(i=1:i<10:i++)a[i-1]=i:能使数组元素分别取值{1,2,3,4,5,6,7,8,9,10}. 21.(F)二维数组在内存中储存以列为主序方式存放。 22.(T)c程序中#include和#define均不是c语句 23.(F)通过return语句,函数可以带回一个或一个以上的返回值 24.(T)在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量 25.(T)对结构体类型的变量的成员可以象普通变量一样参与各种运算 二、选择题 1.(A)是构成c语言程序的基本单位。 A函数 B变量 C子程序 D语句 2.(B)以下叙述中正确的是 A.c语言的源程序不必通过遍译就可以直接运行。 B.语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.c源程序经编译形成的二进制代码可以直接运行 C语言上机考试题—01 1. //#include 1、编写一个C 程序,比较任意三个整数的大小,然后输出其中的最大值。方法不限。 2、计算圆的面积和周长。要求:使用符号常量定义圆周率为3.14。 3、输入某学生三个科目的期末考试成绩,计算出该学生的成绩总分和平均分。要求:有输入数据和输出结果的提示。 4、输入三角形的三边长,求三角形的面积。三角形的三边长用变量a,b,c , 其中s=(a+b+c)/2。提示:求某个数x 的平方根函数为sqrt(x),当直接用此函数时,需要在main 函数上面加入头文件:math.h 。 5、输入一个四位的正整数(如果不是,提示“输入错误”),对其个、十、百、千位四位数字求和并实现个位数与百位数、十位数与千位数的互换然后将这个数输出。例如,输入一个四位正整数1234,通过你的程序,如何输出和10以及新的数3412。 6、求ax 2+b x+c=0方程的根。a ,b ,c 由键盘输入。 提示:众所周知,一元二次方程式的根为:x1= x2= 可以将上面的分式分为两项:p= ,q= x1=p+q, x2=p-q 。注意:在b 2-4ac>0的条件下,才可以求方程的根,否则提示a,b,c 的值输入错误。 7、输入三角形的三条边长,判断能否构成三角形,若能输出YES 并且输出三角形的面积,若不能则输出NO 。 8、任意输入三个整型数,要求按照从大到小的顺序输出。 9、从键盘输入一个四位数的年份,判断其是否为闰年。 a ac b b 242-+-a ac b b 242---a b 2-a ac b 242- 10、有一个函数: 写出程序,输入x的值,输出对应的y的值。要求加上相应的文字说明。 11、编程实现大小字母的转换。从键盘输入一个字符,要求使用getchar()函数读入字符。如果输入的是一个小写字母,转换为大写字母;如果输入的是一个大写字吗,转换为小写字母;如果输入的是一个非字母符号,照原样输出。要求有文字说明。 12、判断从键盘输入的是数字字符、大写字母、小写字母、空格还是其他字符。 13、指定一个年龄,要求按照年龄阶段输出相应的时期:1到7是幼年,8到14是童年,15到21是少年,22到28是青年,29到49是中年,50到70是老年。 14、编写程序,将1至7中的任意一个数字转化成对应的英文星期几的前三个字母,如1转化为Mon,7转化为Sun等。 15、在屏幕上显示一张如下所示的时间表: *****Time***** 1 morning 2 afternoon 3 night 1、编制程序,输入n 个整数(n 从键盘输入,n>0),输出它们的偶数和。 2、 编程,输入n 后:输入n 个数,根据下式计算并输出y 值。 3、输入一行字符,统计并输出其中英文字母、数字字符和其他字符的个数。 4、编写程序,输入一个正整数n ,计算并输出下列算式的值。要求定义和调用函数total(n)计算1+1/2+1/3+……+1/n ,函数返回值的类型是double 。 5、输入一个正整数n ,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n 的阶乘,函数返回值的类型是单精度浮点型。 答案: 程序1、 #include (2010年春选择题第21题) A.必须在最开始 B.必须在最后 C.必须在预处理命令的后面 D.可以在其他函数之前或之后 【解析】main函数也叫主函数,是C语言编译系统提供的特殊函数,可以放在程序中的任何位置,但不能定义在其他函数体内。C程序总是从main函数的第一条语句开始执行。 【答案】D 2.以下叙述中正确的是________ 。(2009年秋选择题第21题) 语言系统以函数为单位编译源程序 函数必须放在程序开始 C.用户定义的函数可以被一个或多个函数调用任意多次 D.在一个函数体内可以定义另外一个函数 【解析】C语言系统以程序为单位编译源程序,程序由函数组成。main函数可以放在其他函数之前或之后。除了main函数外,函数可以被其他函数多次调用。函数不能定义在其他函数体内,即不能嵌套定义。 【答案】C 3.以下叙述中正确的是_________ 。(2008年秋选择题第21题) A.在编译时可以发现注释中的拼写错误 语言程序的每一行只能写一条语句 (){}必须位于程序的开始 语言程序可以由一个或多个函数组成 【解析】C程序的注释不产生编译代码,编译时跳过去,发现不了其中错误。C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。main函数可以放在程序中的任何位置。C程序可以由一个或多个函数组成,函数可以为空函数,包括main函数。 【答案】D 4.以下关于C语言源程序的叙述中错误的是________。(2007年春选择题第21题) A.一个C源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义 B.函数定义由函数头部和函数体两部分组成 C.在一个函数定义的函数体中允许定义另一个函数 D.在一个函数定义的函数体中允许调用另一个函数或调用函数自身 【解析】一个C语言源程序由若干个函数定义组成,其中必须有且仅有一个名为main 的函数定义,函数定义由函数头部和函数体两部分组成。函数可以嵌套调用也可以递归调用,但不能嵌套定义。C的意思是嵌套定义,错误,D的意思是嵌套调用和递归调用,正确。 【答案】C 基本数据类型 1.以下选项中,___________ 是C语言关键字。 (2010年春选择题第22题) 【解析】default是关键字,用在switch语句中。printf和include属于预定义标识符,其中printf是输出函数名,include用在预编译处理命令中。fun是用户自定义标识符。 【答案】D 2.在以下各组标识符中,均可以用作变量名的一组是_____。(2007年秋选择题第22C语言上机报告答案
C语言历年考题真题解析
C语言上机作业题及答案
大学C语言考试试题
C语言上机作业试题5套含答案
C语言上机考试题
C语言上机实验[1]
大学C语言考试试题及答案
扬州大学C语言上机作业1-9整理
西工大C语言上机考试题库
专升本C语言历年试题及答案
C语言上机实验标准答案.doc
C语言期末考试真题
C语言期末上机考试题及答案
C语言上机考试题目
C语言上机综合实验一及答案
c语言历年考题真题解析