C++试卷样例

合集下载

C语言试卷(含答案)

C语言试卷(含答案)

一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设 i 是int 型变量,f 是float 型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100 和分别赋给i 和f,则正确的输入为()。

A. 100B.i=100,f=765.12C. 100<回车>D. x=100y=3、#include<>voidmain(){inta=3,b=2,c=1;intx=10,y=20;if(a<b)if(b!=0)if(!x)y=1;elseif(x)y=0;y=-1;printf("%d",y);} 上面的C 程序的输出结果是()。

A. 20B.1C.0D.-14、C 语言中,while 和do …while循环的主要区别是()。

A. do …while的循环体至少无条件执行一次B. while 的循环控制条件比 do …while的循环控制条件严格C. do …while允许从外部转到循环体内D. do …while的循环体不能是复合语句5、执行下面的 C 程序段后,输出结果是()。

inta=5;while(a--);printf("%d",a);A. 54321B. 4321C.0D.-16、在 C 语言中,()是在所有函数外部声明的。

A. 全局变量B. 局部变量C.形参D.实参7、分析下面的 C 程序:#include<>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}输出结果是()。

A. 123B. 012C.23D.128、下面的 C 语言代码段的输出结果是()。

清华大学“C语言程序设计”期末试卷

清华大学“C语言程序设计”期末试卷

样例: 输入 1 2 -4 0 32 1 -2 2 输出 3 -4+x^2
第三部分
综合问题 (任选一题完成,共 10 分)
3-A. 代数式处理 ( 3-A.cpp ) 读入一个仅含变量 x 的代数式和 x 的值, 输出该式在 x=x0 处的函数值和导函数的值。 表达式中除了字母 x 和+, -, *, /, (, )外没有其他字符
试卷说明: 考试形式为上机考试,考试时间总计 3 小时 请在 C 盘根目录下建立一个子目录,以自己的学号命名,并将所有的程序存入 此目录。如,学号为 010000 的同学,需要建立目录 C:\010000,并将程序存入 此目录。按照题目名称中指定文件名保存你的程序,并保存一个备份,以免程 序被意外破坏。例如,第一题应当保存一个叫做 1-1bak.cpp 的文件。 3-A 和 3-B 最多只能选择一道题目。如果同时存在 3-A.cpp 和 3-B.cpp,我们将 随机选择一道题目进行评分。 所有题目采用键盘输入和屏幕输出,你的程序不得访问任何文件。 评分时将查看源程序,请严格遵守题目中给出的限制。
输入: 先读入一个字符串,字符总数不超过 100 并且不会有格式错误的代数式。 然后读入一实数作为 x0 的值。
输出:
7
包含两个实数,分别是函数值和导函数值。把所得结果保留 2 位小数输出。如果出 现分母为 0 的情况则只输出一个字符串"error"。
样例: 输入 x*(x+x/x) 100 输出 10100.00 201.00
输入: 第 1 行为一个整数 t,表示任务的类型,t=1 表示做加法,t=2 表示做减法。 第 2 行为 1 个整数 n,表示需要计算的数的位数。 以后 n 行,每行为 2 个数字,分别是同一位上的被加数和加数(当 t=1 时);或被 减数和减数(当 t=2 时)。从第 3 行起,位数依次由高到低,第 3 行为最高位,第 n+2 行为最低位。

(完整)C语言程序设计试题题库

(完整)C语言程序设计试题题库

(完整)C语言程序设计试题题库C语言程序设计试题题库题1:编写一个C程序,实现两个整数的相加功能。

要求从键盘上输入两个整数,并将它们相加后输出结果。

解答示例:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```题2:编写一个C程序,实现找出一组整数中的最大值和最小值。

要求从键盘上输入一组整数,然后找出其中的最大值和最小值,并输出结果。

解答示例:```c#include <stdio.h>#define MAX_SIZE 100int main() {int numbers[MAX_SIZE];int count, i;int max, min;printf("请输入整数的个数:");scanf("%d", &count);printf("请输入%d个整数:", count);for (i = 0; i < count; i++) {scanf("%d", &numbers[i]);}// 默认将第一个整数作为最大值和最小值max = min = numbers[0];for (i = 1; i < count; i++) {if (numbers[i] > max) {max = numbers[i];} else if (numbers[i] < min) {min = numbers[i];}}printf("最大值:%d\n", max);printf("最小值:%d\n", min);return 0;}```题3:编写一个C程序,实现计算一个数的阶乘。

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语言)等级考试试卷(七级)202206

青少年软件编程(C语言)等级考试试卷(七级)202206

青少年软件编程(C语言)等级考试试卷(七级)分数:100 题数:4一、编程题(共4题,共100分)1. 重建二叉树给定一棵二叉树的前序遍历和中序遍历的结果,求其后序遍历。

时间限制:1000内存限制:65536输入输入可能有多组,以EOF结束。

每组输入包含两个字符串,分别为树的前序遍历和中序遍历。

每个字符串中只包含大写字母且互不重复。

输出对于每组输入,用一行来输出它后序遍历结果。

样例输入样例输出试题编号:_7_01试题类型:编程题标准答案:试题难度:一般试题解析:#include<bits/stdc++.h>using namespace std;struct Node{char c;Node *lchild;Node *rchild;int loc;char str1[100],str2[100];Node *create(){tree[loc].lchild=tree[loc].rchild=NULL;return &tree[loc++];}Node *build(Node *root,int q1,int q2,int z1,int z2){root=create();char cr=str1[q1];root->c=cr;int idx=z1;for(;idx<=z2;idx++){if(str2[idx]==cr)break;}if(idx!=z1){root->lchild=build(root->lchild,q1+1,q1+(idx-z1),z1,idx-1);}if(idx!=z2){root->rchild=build(root->rchild,q1+(idx-z1)+1,q2,idx+1,z2);}return root;}void PostOrder(Node *root) {if(root->lchild!=NULL){PostOrder(root->lchild);}if(root->rchild!=NULL){PostOrder(root->rchild);}cout<<root->c;}int main() {while(cin>>str1){cin>>str2;loc=0;Node *root=NULL;int len1=strlen(str1);int len2=strlen(str2);root=build(root,0,len1-1,0,len2-1);PostOrder(root);cout<<endl;}}展示地址:点击浏览考生答案:(此题已作答)考生得分:25是否评分:已评分评价描述:2. 快速堆猪小明有很多猪,他喜欢玩叠猪游戏,就是将猪一头头叠起来。

C语言测试卷库(完整版)

C语言测试卷库(完整版)

C语言测试卷库(完整版)C语言试题库一、单项选择第一章C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。

B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。

C、本程序的MAIN函数开始,到本程序的最后一个函数结束。

D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。

(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。

B、C程序的每行中只能写一条语句。

C、C语言本身没有输入输出语句。

D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。

(3)C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。

B、必须在系统调用的库函数的后面C、可以在任意位置。

D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=(i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、i f, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4)以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5)若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”);else printf(“$ $ $\n”);}以上程序。

C语言期中试卷

C语言期中试卷

C语言期中试卷《C语言程序设计》期中考试卷一、选择题1.下面程序段的运行结果是。

for(x=3; x<6; x++) printf((x%2)? (“**%d”): (“##%d\n”), x); A.**3##4**5 B.##3**4##5C.##3**4##5D.**3##4**52.下面程序的运行结果是。

#includeint main(){int i;for(i=1; i<=5; i++)switch(i%5){case 0: printf("*");break;case 1: printf("#");break;default: printf("\n");case 2: printf("&");} return 0;}A.#&&&*B.#&& &* C.#&&&*D.#&*3.下面程序的功能是求算式xyz+yzz=532中的x,y,z的值(其中xyz和yzz分别表示一个三位数),请选择填空。

#include int main( ){ int x,y,z,I,result=532;for(x=1;x<10;x++)for(y=1;y<10;y++)for( ; z<10; z++){ i=100*x+10*y+z+100*y+10*z+z;if ( )printf(“x=%d,y=%d,z=%d\n”,x,y,z);}return 0;}A1.z=x B1.z=1 C1.z=0 D1.z=yA2.i/result==1 B2.i=result C2.i!=result D2.i==result4.以下正确的描述是。

A.continue语句的作用是结束整个循环的执行B.只能在循环体和switch语句体使用break语句C.在循坏体使用break语句或continue语句的作用相同D.从多层循环嵌套中退出,只能使用goto语句5.在下面的程序中,。

C语言程序设计试题样例

C语言程序设计试题样例

C语言程序设计试题样例第X套:一. 选择题(1)凡是未显示定义存储类别的局部变量,其默认的存储类别为:(A)自动(B)静态(C)外部(D)寄存器答案: A(2)设有如下的变量定义:int i=8,k,a,b;unsigned long w=5;double x=1.42, y=5.2;则以下符合C语言语法的表达式是:(A)a+=a-=(b=4)*(a=3) (B) x%(-3);(C)a=a*3=2 (D) y=float(i)答案: A(3)函数fscanf的功能是:(A)从文件输入信息(B)将信息输出到文件(C)从控制台输入信息(D)将信息输出到控制台答案: A(4)执行以下程序后,输出结果是:(A)7 (B)6 (C)5 (D)4main(){ int m=5;if (m++>5) printf("%d\n",m);else printf("%d\n",m--);}答案: B(5)C语言中while与do while语句的主要区别是:(A)do while的循环体至少无条件执行一次(B)do while允许从外部转到循环体内(C)do while的循环体不能是复合语句(D)while的循环控制条件比do while的严格答案: AB(6)使用共用(联合)体union的目的是:(A)将一组数据作为一个整体,以便其成员共享同一存储空间(B)将一组类型相同的数据作为一个整体,以便其成员共享同一存储空间(C)将一组数据作为一个整体,以便程序使用(D)将一组类型相同的数据作为一个整体,以便程序使用答案: A(7)在下列选项中,没有构成死循环的程序段是:(A)int i=100;while (1){ i=i%100+1;if (i>100) break;}(B)for ( ; ;);(C)int k=1000;do {++k;} while (k>=10000);(D)int s=36;while (s); --s;答案: C(8)以下程序运行后,如果从键盘上输入ABCDE<回车> ,则输出结果为:(A)8 (B)7 (C)6 (D)5#include "stdio.h"#include "string.h"func (char str[ ] ){ int num=0;while (*(str+num)!='\0') num++;return (num);}main( ){ char str[10],*p=str;gets (p); printf ("%d\n",func (p) );}答案: D(9)运行下面的程序,如果从键盘上输入:ab<回车>c<回车>def<回车>则输出结果为(A)a (B)a (C)ab (D)abcdefb b cc c dd def#include "stdio.h"#define N 6main( ){ char c[N];int i=0;for ( ;i<N;c[i]=getchar(),i++);for(i=0;i<N;i++) putchar(c[i]); printf("\n");}答案: C(10)设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d) 后,n 的值为(A)1 (B)2 (C)3 (D)0答案: B二.填空题(请输入[复制粘贴]到TC3++中,自行调试)(11)执行以下程序后,输出结果是。

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

C) 一条预处理命令行必须以分号结束
处理的 7.设 int 型数据占 4 个字节,若有定义:int x[10]={0,2,4}; 则 sizeof(x)的值为 A) 3 B) 12 8.下列关于 C++函数的叙述中,正确的是 A)每个函数至少要有一个形参
C) 40
D) 10 。 B)每个函数都必须有返回值 D)函数不能自己调用自己
程序运行的结果是:ABCDEF
6 .#include <iostream.h> class point{ private: int x,y; public: point(int x1=0,int y1=0){ x=x1; y=y1; } virtual void move(int x1,int y1){ x+=x1; y+=y1; } virtual void disp(){ cout<<"点:("<<x<<','<<y<<')'; } }; class line:public point{ private: int xx,yy; public: line(int x1,int y1,int x2,int y2):point(x1,y1){ xx=x2; yy=y2; } void move(int x1,int y1){ point::move(x1,y1); xx+=x1; yy+=y1; } void disp(){ point::disp (); cout<<"-点:("<<xx<<','<<yy<<')'; } }; void main(){ line l(2,4,6,8); point p(l),*pp=&l; p.move (3,3); pp->move (4,4); p.disp ();
cout<<endl; pp->disp (); cout<<endl; } 结果: 点:(5,7) 点:(6,8)-点:(10,12) Press any key to continue 三.程序填空(每空 2 分,共 32 分) : 1. 设一个数列的第 1、2 项分别为 0 和 1,以后每个奇数编号的项是前两项之和,偶数编号 项是前两项之差的绝对值。下面程序的功能是生成该数列的前 20 项并存入一个数组 x,然 后将这 20 个数存入文本文件 data.txt。 #include <fstream.h> #include <math.h> void main() { int x[20],i; x[0]=0;x[1]=1 i=2; do{ x[i]= ; //x[i-1]+x[i-2] x[i+1]=abs(x[i-1]-x[i]); i= ; //i+2 }while( ); //i<19 ; if(!fout) return; for( ;i<20 ; j++){ //i=0 fout<<x[i]<<“ ”; fout.close(); } 2.以下程序实现将任意正整数转换成相应字符串。例如,将 1234 转换为“1234” 。 #include <iostream.h> class Cstack{ //定义字符栈 char s[80]; int top; //栈顶指示器 public: Cstack() { top=-1 ;} //把栈置为空 void push(char ch){ //将 ch 入栈 if(top==79) return; s[++top]= ch ; } char pop(){ //出栈并返回栈顶元素值(栈空时返回 0) if(top==-1)return 0; return ; //s[top--]
A)B+=3; B)a[5]=B+3; C)int x[B+3]; 4. a、b 均为 int 型且 b≠0,则表达式 a-a/b*b 的值为 。
A)0 B) a D)a 被 b 除商的整数部分 C)a 被 b 除的余数部分 5. 设 int a=5,b=6,c=7; 则 cout<<((a+b)<c&&b!=c)<<","<<((a+b)<c,b=c);的输出是 。 A) 0,0 B) 0,7 6. 以下关于编译预处理的叙述中,错误的是 A)预处理命令必须以“#”开始 C) 1,0 D) 1,7 。 B)一条预处理命令行必须独占一行 D) 预处理命令是在正式编译之前先被 。
C)函数在被调用之前必须先声明
9.下面有关重载函数的说法中正确的是 A) 重载函数必须具有不同的返回值类型
。 B) 重载函数形参个数必须不同 D) 重载函数名可以不同 。 D) 不确定的数 。
C) 重载函数必须有不同的形参表
10. 表达式 strcmp("box","boss") 的值是
B) 负整数 C) 0 11.设 int a[3][4],*p=a[0]; 以下不能正确访问数组元素 a[i][j]的是
A) 完全二叉树 B) 满二叉树 C) 二叉排序树 D) 普通的二叉树 18.设用一个大小为 6 的一维数组存储顺序循环队列,若当前 front 和 rear 的值分别为 3
和 5,当从队列中删除一个元素,再加入两个元素后,front 和 rear 的值分别是 A)5 和 0 B)4 和 7 C)无法完成要求的操作 D)4 和 1 19.以下关于关键字的描述中错误的是 。 A)关键字可由元素的一个或多个数据项组成 B) 可以按关键字进行查找
void main(){ A m,n(15,18); m.print(); n.print(); m+=n; m.print(); n.print(); } 程序运行的结果是: a=10, b=10 a=15,b=18 a=25,b=28 a=15,b=18 4. #include <iostream.h> void main(){ int x=3,y=3; switch(x%2) { case 1: switch (y%x){ case 0:cout<<"first\n"; case 1:cout<<"second\n";break; default: cout<<"hellow\n"; } case 2:cout<<"third\n"; } } 程序运行的结果是: first second third 5. #include <iostream.h> #include <string.h> void fun(char *str){ char t; int i,j; for(i=1;i<strlen(str);i++){ t=str[i]; for(j=i-1;j>=0&&t<str[j];j--) str[j+1]=str[j]; str[j+1]=t; } } void main(){ char s[]="CFBEAD"; fun(s); cout<<s<<endl; }
D) p=new int[5]={1,2,3,4,5,6}; 16.下列关于动态联编的描述错误的是 。 A) 动态联编在运行时选择联编函数 B) 动态联编也称为动态多态性
C) p=new int[10];
C) 函数重载和运符重载属于动态联编 D) 动态联编可用来选择虚函数 k+1 17.设二叉树的高度为 k(k≥0),若其包含的结点总数为 2 -1,则该二叉树是 。
D) public 成员 D) 3

A) 变量 a 的地址值 B) 无意义 C) 变量 p 的地址值 14.设 int i=5,f=15; 则执行语句 if(i=0) f-=5; 后 i 和 f 的值分别是 A) 5,15 B) 5,10 C) 0,15 15.设 int *p;以下对 new 运算符的正确使用形式是 A) p=new a[10]; B) *p=new int[10]; D) 0,10 。

C) 不同元素的关键字值可以相同
一的 20.直接插入排序在被排序的数据 A) 完全无序 时效率较高。 C) 逆序排列
D) 每个元素的关键字必须是唯
B) 基本有序
D) 最 大 值 与 最 小 值 相 差
不大 二.写出以下程序的运行结果(每题 4 分,共 20 分) 1. #include <iostream.h> void main(){ int a[8]={12,25,33,5,8,16,51,22},i; int *p=a; for(i=0;i<4;i++) cout<<*(p+i*2)<<endl; } 程序运行的结果是: 12 33 8 51 2. #include <iostream.h> int fun(){ static int d2=0,d1=1; int t=d2+d1; d1=d2; d2=t; return d2; } void main(){ for(int i=0;i<6;i++) cout<<fun()<<“ ”; cout<<endl; } 程序运行的结果是:1 1 2 3 5 8 3. #include <iostream.h> class A{ public: A(){ a=b=10; } A(int i,int j) { a=i; b=j; } void operator+=(const A &x){ a+=x.a; b+=x.b; } void print(); private: int a,b; }; void A::print(){ cout<<"a="<< a<<",b="<< b<<endl; }
相关文档
最新文档