C语言》课程期末考试-第六套

合集下载

2018年C语言程序设计期末考试第6套

2018年C语言程序设计期末考试第6套

2018年秋季学期A卷、考试、机试、闭卷(第6套)C语言程序设计命题教师:农国才阳建中刘顺黄瑜适用班级:计科本、物联本18级答卷说明:1.本试卷共 3 页,4 个大题,满分100分,时间120分钟。

2.准带的用具或资料:试卷套号:学号:姓名:班别:答题要求:1. 选择题请在手机上完成答题,并将答题结果填写在指定空格处);2.程序题⑴请将题目给定的源程序复制粘贴到编译器中;⑵并对程序进行修改、编译、调试、运行;⑶将修改好的源程序存放在考生文件夹中,文件名为“学号_姓名.cpp”(例如:1704412147_王明.cpp);⑷将修改的内容填写到指定答题处,将运行结果截图粘贴答题处。

一、选择题(本大题共20小题,每小题2分,共40分。

1-5:6-10:11-15:15-20:二、程序填空题(本大题共4个空,每空4分,运行结果正确4分,共20分)给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000移动后的输出为:46 32 40 45 48 30 6 17 15 26请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!给定源程序:#include <stdlib.h>#include <stdio.h>#define N 10double fun(double *x){ int i, j;double s, av, y[N];s = 0;for(i = 0; i < N; i++) s = s + x[i]; /**********found**********/ av = __1__;for(i = j = 0; i < N; i++) if( x[i] > av ) {/**********found**********/ y[__2__] = x[i]; x[i] = -1; }for(i = 0; i < N; i++)/**********found**********/ if( x[i] != __3__) y[j++] = x[i]; for(i = 0; i < N; i++)x[i] = y[i]; return av; }int main(void) { int i;double x[N];for(i = 0; i < N; i++) { x[i] = rand() % 50; printf("%4.0f ", x[i]); }printf("\n");printf("\nThe average is: %f\n", __4__); printf("\nThe result :\n", fun(x));for(i = 0; i < N; i++) printf("%5.0f ", x[i]); printf("\n"); return 0; }三、程序改错题(本大题共有4处错误,每处4分,运行结果正确4分,共20分)给定以下程序中函数fun 的功能是: 依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。

c语言期末考试题库及详解答案选择题

c语言期末考试题库及详解答案选择题

c语言期末考试题库及详解答案选择题在C语言期末考试中,选择题是常见的题型之一,它考查学生对C语言基础知识点的掌握程度。

以下是一些典型的C语言选择题及其详解答案,供同学们参考:1. 下列哪个是合法的C语言常量?A. 0.123E-2B. .123C. 0x12AB34D. 0L答案:C。

解析:C语言中的常量可以是整型常量、浮点型常量、字符常量等。

选项A中缺少整数部分,选项B中没有整数部分或指数部分,选项D中的'L'是长整型后缀,但前面没有数字,因此选项C是合法的十六进制常量。

2. 以下哪个语句不能通过编译?A. int a = 5;B. int b = 0x12;C. int c = 0755;D. int d = 1.23e0;答案:C。

解析:选项C中的0755是一个八进制常量,但是八进制常量不能以数字5开始,因此选项C是错误的。

3. 以下哪个是正确的C语言数组声明?A. int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int arr[5] = {0, 1, 2, 3, 4, 5};D. int arr[10];答案:B。

解析:选项A中数组的大小是10,但初始化列表中只有9个元素,这是不正确的。

选项C中初始化列表有6个元素,但数组的大小是5,这会导致编译错误。

选项D没有初始化列表,但数组的大小是10,这是合法的。

选项B是正确的,因为它允许数组的大小由初始化列表中的元素数量决定。

4. 下列哪个是正确的C语言函数声明?A. void myFunction();B. int myFunction(int a, int b);C. double myFunction(double);D. void myFunction(int);答案:B。

解析:选项A中没有参数,但函数名后没有括号,这是不正确的。

2024年3月青少年软件编程C语言等级考试试卷六级真题

2024年3月青少年软件编程C语言等级考试试卷六级真题

2024年3月青少年软件编程C语言等级考试试卷六级真题分数:100题数:4一、编程题(共4题,共100分)1.小白鼠再排队N只小白鼠(1<N<100),每只鼠头上戴着一顶有颜色的帽子。

现在称出每只白鼠的重量,要求按照白鼠重量从小到大的顺序输出它们头上帽子的颜色。

帽子的颜色用“red”,“blue”等字符串来表示。

不同的小白鼠可以戴相同颜色的帽子。

白鼠的重量用整数表示。

时间限制:1000内存限制:65536输入输入第一行为一个整数N,表示小白鼠的数目。

下面有N行,每行是一只白鼠的信息。

第一个为正整数,表示白鼠的重量,不超过整型范围;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。

注意:白鼠的重量各不相同。

输出按照白鼠的重量从小到大的顺序输出白鼠的帽子颜色。

样例输入样例输出试题编号:20240323-6-01试题类型:编程题标准答案:试题难度:一般试题解析:展示地址:点击浏览考生答案:#include<bits/stdc++.h>using namespace std;struct shu{int n;string s;}a[100010];bool cmp(shu a,shu b){return a.n<b.n;}int main(){int N;cin>>N;for(int i=0;i<N;i++){cin>>a[i].n>>a[i].s;}sort(a,a+N,cmp);for(int i=0;i<N;i++){cout<<a[i].s<<endl;}}考生得分:25是否评分:已评分评价描述:2.扩号匹配问题在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。

写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。

电子学会青少年软件编程(C语言六级)等级考试真题试卷(2022年6月)-附答案

电子学会青少年软件编程(C语言六级)等级考试真题试卷(2022年6月)-附答案
flag=1;//用flag标记是否在栈或者数列为空时候 还输入pop else{
a.pop(); b.pop(); } } } if(!flag)//如果没被标记则输出栈和数列 { while(!a.empty()) {
cout<<a.front()
第 3 题
问答题 出栈序列统计 栈是常用的一种数据结构,有n个元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列。你已经知道栈的操 作有两种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出。现在要使用这两种操作,由一个操 作序列可以得到一系列的输出序列。请你编程求出对于给定的n,计算并输出由操作数序列1,2,…,n,经过 一系列操作可能得到的输出序列总数。 时间限制:1000 内存限制:65536 输入 就一个数n(1≤n≤15)。 输出 一个数,即可能输出序列的总数目。
样例输入 2 4 push 1 push 3 pop push 5 1 pop 样例输出 35 15 error error
答案
#include<iostream> #include<stdio.h> #include<stack> #include<queue> using namespace std; int s[1000];//定义一个数组来存放栈 char stl[10];//定义一个字符串数组来判断是否push或者pop int main() {
第 2 题
问答题
队列和栈
队列和栈是两种重要的数据结构,它们具有push k和pop操作。push k是将数字k加入到队列或栈中,pop则是
从队列和栈取一个数出来。队列和栈的区别在于取数的位置是不同的。
队列是先进先出的:把队列看成横向的一个通道,则push k是将k放到队列的最右边,而pop则是从队列的最左

C语言期末考试试题及标准答案西安科技大学

C语言期末考试试题及标准答案西安科技大学

case 4: m++;n++;
}printf("m=%d,n=%d",m,n);}
三.写出下面程序的运行结果 .( 每题 5 分,共 20 分)
1.下面程序的运行结果是 a=16,y=36.
#include “stdio.h”
main()
{ int a,y;
a=2;y=0; do
{a+=2;y+=a;
int (*p)[ (1) ];
p=a;
printf( “Enter i,j;(0<=i<=2),(0<=j<=4): ”);
scanf(“%d,%d”,&i,&j); printf( “a[%d][%d]=%d\n ”,i,j,*(
(2) ));
}
接答:( 1) 5Fra bibliotek(2) * ( p+i)+j
2 .以下程序的功能是用枚举法求百鸡问题,公鸡五元一只,母鸡三元一只,小鸡一元两 只;一百元要买一百只鸡,且需包含公鸡、母鸡和小鸡。问有几种方案可以实现。请填
else printf( “%d”,m--); }
8. 以下程序的运行结果是 m=3,n=5
#include "stdio.h" main()
{ int i=0,j=0,m=1,n=3;
switch(i++)
{case 0:m++;
case 1:n++;
case2:
case 3: m++;n++;break;

科院

西

c语言期末试题及答案及详解

c语言期末试题及答案及详解

c语言期末试题及答案及详解本文将提供C语言的期末试题及答案,并对每个问题进行详细解析,旨在帮助读者更好地理解和掌握C语言知识。

每个问题都将以清晰的排版和通顺的语句进行阐述,以确保文章的可读性和表达流畅。

试题一:1. 以下代码段输出的结果是什么?```c#include <stdio.h>int main() {int x = 6 / 2 * (1 + 2);printf("%d", x);return 0;}```答案及详解:输出的结果是9。

这个问题考察了C语言中的运算符优先级。

根据优先级规则,先计算括号内的表达式1 + 2,结果为3。

然后进行乘法运算6 / 2 * 3,结果为9。

最后通过printf函数将结果打印出来。

试题二:2. 以下代码段中存在什么错误,并进行改正。

```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", num1, num2);int sum = num1 + num2;printf("两个整数的和为:%d", sum);return 0;}```答案及详解:代码存在的错误是scanf函数参数传递时变量名未加取地址符&,需要改正为scanf("%d %d", &num1, &num2)。

scanf函数用于从标准输入读取数据,需要通过取地址符&将变量的地址传递给scanf函数,以便将读取的数据存储到相应的变量中。

在给定的代码中,应该在num1和num2前面加上&,即scanf("%d %d", &num1, &num2)。

试题三:3. 下面的代码中,函数fun的返回值是什么?```c#include <stdio.h>int fun(int *arr, int n) {if (n == 0) {return 0;}return (*arr) + fun(arr+1, n-1);}int main() {int arr[] = {1, 2, 3, 4, 5};int sum = fun(arr, 5);printf("数组元素的和为:%d", sum);return 0;}```答案及详解:函数fun的返回值是数组元素的和。

大一c语言期末考试题及答案解析

大一c语言期末考试题及答案解析

大一c语言期末考试题及答案解析一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. all of the above答案:D2. C语言中,用于定义单精度浮点数的关键字是?A. intB. floatC. doubleD. char答案:B3. 下列哪个函数用于将浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A4. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A5. 下列哪个选项不是C语言中的控制结构?A. ifB. forC. whileD. switch答案:D6. C语言中,用于定义字符数组的关键字是?A. charB. stringC. arrayD. vector答案:A7. 下列哪个函数用于输出格式化的字符串?A. printfB. scanfC. fprintfD. sprintf答案:A8. C语言中,用于定义整型变量的关键字是?A. intB. floatC. doubleD. char答案:A9. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ||D. ==答案:D10. 在C语言中,用于定义布尔变量的关键字是?A. boolB. intC. charD. float答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:___________。

答案:int variable_name;2. C语言中,用于输入一个整数的函数是:___________。

答案:scanf3. 如果要定义一个字符串常量,应该使用___________符号。

答案:"4. 在C语言中,使用___________关键字可以定义一个函数。

答案:void 或者其他返回类型5. C语言中,用于定义一个数组的语法是:___________。

大学生C语言期末考试试题汇总

大学生C语言期末考试试题汇总

大学生C语言期末考试试题汇总第1-3章习题一、单项挑选题1C语言属于()。

A.机器语言B.低级语言C.中级语言D.高级语言2一个C程序可以包含随意多个不同名的函数,但有且仅有一个。

A.函数B.主函数C.includeD.过程3系统默认的C语言源程序扩展名为.C,需经过之后,生成.exe文件,才干运行?A.编辑?编译B.编译?衔接C.编辑?改错D.编辑?衔接4C语言程序从开头执行。

A.程序中第一条可执行语句B.程序中第一个函数C.程序中的main函数D.包含文件中的第一个函数5C语言程序是由构成的。

A.一些可执行语言B.main函数C.函数D.包含文件中的第一个函数6一个算法应具有“确定性”等5个特性,则对另外4个特性描述错误的是。

A.有效性B.有穷性C.有零个或多个输入D.有零个或多个输出7设变量a是整型,f是实型,i双精度型,则表达式10+’a’+i*f 值的数据类型。

A.intB.floatC.doubleD.不确定8在C语言中,变量所分配的内存空间大小是由。

A.均为一个字节B.由用户自己定义C.由变量的类型打算D.是随意的9执行scanf (“a=%d,b=%d”,&a,&b)语句,若要使变量a和b的值分离为3和4,则正确的输入办法为。

A. 3 ,4B.a:3 b: 4C.a=3,b=4D. 3 410在算术表达式中允许使用的括号类型是。

A.{ }B.[ ]C.( )D.以上三项皆错11存储以下数据,占用存储字节最少的是。

A. 0B. ‘0’C. “0”D. 0.012设n=10,i=4,则运算n%=i+1执行后,n 的值是。

A.0B.3C.2D.113C语言中运算对象必需是整型的运算符是。

A.%B. /C. =D.〈=14已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是.A .0 B. 1 C. 5 D. 615若有以下类型说明语句:char w;int x;float y;double z;则表达式w-x*y/z的结果为类型A.floatB.charC.intD.double16在C语言的库函数中,可以输出char型变量x值的语句是。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六套期末考试题一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。

每小题1分,共15分)1.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( )A.连接、编译B.编译、连接C.连接、运行D.运行2.常数的书写格式决定了常数的类型和值,0x1011是( )A.8进制整型常量B.字符常量C.16进制整型常数D.2进制整型常数3.C语句“x*=y+2;”还可以写作( )A. x=x*y+2;B. x=2+y*x;C. x=x*(y+2);D. x=y+2*x;4.下列格式符中,可以用于以8进制形式输出整数的是( )A. %dB. %8dC. %oD. %1d5.下列各语句中,能够且仅输出整型变量a、b中最大值的是( )A. if(a>b) printf(″%d\n″,a);printf(″%d\n″,b);B. printf(″%d\n″,b);if(a>b) printf(″%d\n″,a);C. if(a>b) printf(″%d\n″,a);else printf(″%d\n″,b);D. if(a<b) printf(″%d\n″,a);printf(″%d\n″,b);6.执行语句“for(s=0,i=1;i<=10;i=i+3) s+=i;”后,变量s、i的当前值是( )A. 22,13B. 12,10C. 22,10D. 12,137.下列各语句定义了数组,其中一个不正确的是( )A. static int a[5],b[2][3];B. char no[30],rec[30,6];C. int x[]={2,4,6,8,10};D. int x[10]={1,2,3,4,5};8.宏定义“#define p(x,y,z) x=y*z;”的宏替换“p(a,x+5,y-3.1)”应为( )A. a=x+5*y-3.1B. a=(x+5)*(y-3.1);C. a=x+5*y-3.1D.a=(x+5)*(y-3.1)9.下列语句定义p为指向float类型变量d的指针,其中哪一个是正确的( )A. float d,*p=d;B. float d,*p=&d;C. float d,p=d;D. float *p=&d,d;10.执行语句“for(i=0;i<10;++i,++a)scanf(″%d″,a);”试图为int类型数组a[10]输入数据,是错误的。

错误的原因是( )A.指针变量不能做自增运算B.数组首地址不可改变C.++i应写作i++D.++a应写作a++1.定义函数时,缺省函数的类型声明,则函数类型取缺省类型( )A. voidB. charC. floatD. int12.执行语句“k=5|3;”后,变量k的当前值是( )A. 1B. 8C. 7D. 213.执行语句“k=5∧3;”后,变量k的当前值是( )A. 15B. 125C. 8D. 614.以“只读”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的( )A. fp=fopen(″a:\\aa.dat″,″ab″);B. fp=fopen(″a:\aa.dat″,″a″);C. fp=fopen(″a:\aa.dat″,″wb″);D. fp=fopen(″a:\\aa.dat″,″r″);15.写字符到磁盘文件的fpuc函数,其函数原型(头)正确的是( )A. FILE* fputc(char)B. int fputc(FILE *)C. int fpuc(char,FILE *)D. int fputc(FILE *,char)二、填空题(每空1分,共15分)1.设int a=5,b=2;float c=32.8;,表达式b*(int)c%a的值为______。

2.计算a、b中最小值的条件表达式为______。

3.计算x、y之和的立方根,表达式应写作______。

4.判断变量a、b、c的值是否是等差数列中连续的三项,写作C的表达式为______。

5.判断变量a、b的值均不为0的C表达式为______。

6.执行语句“a=5+(c=6);”后,变量a、c的值依次为______。

7.整型变量x的值为23,语句“printf(″%o\\n″,x);”的输出结果为______。

8.执行语句“n=1;if(n=5) n++;"后,变量n值为______。

9.执行语句“s=0;n=5;while(--n) s+=n;”后,变量s、n值依次为______。

10.执行语句“for(s=0,i=1;i<11;i++) {if(i==6)continue;s+=i;}"后,s值为______。

11.若声明“char a[]=″windows″,b[]=″9x″;”,执行语句“printf(″%s″,strcat(a,b));”的输出结果为______。

12.若声明“char a[15]=″Windows-9x″;”,语句“printf(″%s″,a+8);”的输出结果为______。

13.程序中使用了字符串函数(如strlen),则必须包含的头文件名为______。

14.访问结构体数组元素a[k]的成员b,写作______。

15.a、b都是结构体变量,语句“a=b;”能够执行的条件是______。

三、程序阅读题,读下列程序,在程序旁的划线处写出程序的输出结果。

每行2分,共24分)1.#include <stdio.h>void main() 输出结果:______{ int i; ______for (i=1;i<5;i++) printf(″%d\t%c\n″,i,'A'+i); ______ } ______2.#include <stdio.h>void main(){ int i,j,a[4][4];for(i=0;i<4;i++)for(j=0;j<4;j++) a[i][j]=1+i-j;for(i=0;i<4;i++) {for(j=0;j<4;j++) 输出结果:______if(a[i][j]>0) printf(″%3d″,a[i][j]);______putchar('\n');______} ______3.#include <stdio.h>void f(float a,float b,float* c){ static float x;float y;x=(y=a>b?a:b)>x?y:x;*c=x;}void main(){ float a[5]={2.5,-1.5,7.5,4.5,6.5},x;for(int i=0;i<4;i++) { 输出结果:______ f(a[i],a[i+1],&x); ______ printf(″%.1f\n″,x); ______ } ______}四、根据下列各编程题题意填空(每空2分,共24分)1.输入2个整数,输出它们的最小公倍数和最大公约数。

#include <stdio.h>void main(){ int m,n,gbs,gys; scanf ((1) );gbs=m;while((2) ) gbs=gbs+m;gys=(3) ;(4) ;}2.下列函数sum的返回值为一个整数m的所有因子之和。

(1){ int s=1;i;for((2) ;i<=m/2;i++)if((3) ) s=s+i;(4) ;}3.下列函数用于将链表中tabdata类型的、成员num值与形参n相等的结点删除。

struct tabdata *de1(tabdata *h,int n){ struct tabdata *p1,*p2;if(h==NULL) {printf(″\nlist null!\n″); (1) ;}p1=h;while(n!=p1->num && (2) ){p2=p1;p1=p1->next;}if((3) ) {if(p1==h) h=p1->next;else (4) ;printf(″delete:%1d\n″,n);}elseprintf(″%1d not been found!\n″,n);return h;五、编程题(第1小题6分,其他小题各8分,共22分)1.编程,先输入n ,再输入n 个实数并分别统计正数的和、负数的和,然后输出统计结果。

2.编程,输入a 1、a 2、...、a151111111231415++++⋅⋅⋅++a a a a a3.把文本文件x1.dat 复制到文本文件x2.dat 中,要求仅复制x1.dat 中的非空格字符。

相关文档
最新文档