C++试题3

合集下载

c语言计算机三级题目

c语言计算机三级题目

c语言计算机三级题目
C语言计算机三级题目通常涉及一些较为复杂的编程问题,包括但不限于数据结构、算法、文件操作等方面的内容。

这些题目旨在考察考生对C语言的熟练程度和对计算机基本原理的理解。

以下是一些可能出现的题目类型:
1. 数据结构和算法,可能涉及链表、树、图等数据结构的实现和相关算法的应用,如排序算法、查找算法等。

2. 文件操作,要求考生能够使用C语言对文件进行读写操作,包括文件的打开、关闭、读取、写入等操作。

3. 内存管理,可能涉及动态内存分配和释放,要求考生能够正确地使用malloc和free等函数。

4. 函数和指针,可能涉及函数的嵌套调用、指针的应用等,要求考生能够熟练地使用函数和指针来完成特定的任务。

5. 综合性问题,可能要求考生设计一个小型的C语言程序,涉及多个方面的知识,考察考生的综合应用能力。

总的来说,C语言计算机三级题目涵盖了C语言的各个方面,考察考生的编程能力、理解能力和解决问题的能力。

考生在备考时需要系统地复习C语言的基础知识,并多做一些相关的编程练习,以便在考试中取得更好的成绩。

13真题与答案 202403青少年软件编程(C语言)等级考试试卷(三级)

13真题与答案   202403青少年软件编程(C语言)等级考试试卷(三级)

202403青少年软件编程(C语言)等级考试试卷(三级)分数:100分题数:51. 我家的门牌号我家住在一条短胡同里,这条胡同的门牌号从 1 开始顺序编号。

若所有的门牌号之和减去我家门牌号的两倍,恰好等于 n,求我家的门牌号及总共有多少家。

数据保证有唯一解。

时间限制:1000内存限制:65536输入一个正整数 n。

n < 100000。

输出一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。

样例输入100样例输出10 15参考代码:#include <stdio.h>int main() {int n;scanf("%d", &n);int x, y;for (x = 1; x < n; x++) {for (y = x + 1; y < n; y++) {int sum = y * (y + 1) / 2 - x * 2;if (sum == n) {printf("%d %d\n", x, y);return 0;}}}return 0;}2. 最接近的分数分母不超过 N 且小于 A/B 的最大最简分数是多少?时间限制:10000内存限制:65536输入三个正整数 N,A,B,相邻两个数之间用单个空格隔开。

1 <= A < B <N <= 1000。

输出两个正整数,分别是所求分数的分子和分母,中间用单个空格隔开。

样例输入100 7 13样例输出50 93参考代码:#include <stdio.h>int gcd(int a, int b) {return b == 0? a : gcd(b, a % b);}int main() {int N, A, B;scanf("%d %d %d", &N, &A, &B);int numerator = 0, denominator = 1;for (int i = 2; i <= N; i++) {for (int j = 1; j < i; j++) {if ((double)j / i < (double)A / B && ((double)numerator / denominator < (double)j / i || (double)A / B - (double)j / i < (double)A / B - (double)numerator / denominator)) {numerator = j;denominator = i;}}}printf("%d %d\n", numerator, denominator);return 0;}3.菲波那契数列菲波那契数列是指这样的数列: 数列的第一个和第二个数都为 1,接下来每个数都等于前面 2 个数之和。

C语言程序设计试题及答案解析

C语言程序设计试题及答案解析

18、 已知x=43, ch=’A’,y=0;则表达式 (x>=y&&ch<’B’&&!y)的值是:( ) A、0 B、语法错 C、1 D、“假” 19、 表达式17%4 /8的值为:( ) A、0 B、1 C、2 D、3 20、 语句printf(“%d”,(a=2)&&(b= -2));的输出结果是: ( ) A、无输出 B、结果不确定 C、-1 D、1 21、 一个可执行的C程序的开始执行点是:( ) A. 程序中的第一个语句 B. 包含文件中的第一个函数 C. 名为main的函数 D. 程序中的第一个函数 22、 组成C语句的一个必不可少的符号是:( ) A. 逗号 B. 引号 C. 冒号 D. 分号 23、 若将int、long、float等类型的数据进行混合运算,其结果的 数据类型是:( ) A. int B. long C. float D. double 24、 下述是C语言中有关变量定义的几个说法,正确的是: ( ) A. 变量可以不定义直接使用 B. 一个说明语句只能定义一个变量 C. 几个不同类型的变量可在同一语句中定义 D. 变量可以在定义时进行初绐化 25、 与x * = y + z等价的赋值表达式是:( ) A. x = y + z B. x = x * y + z C. x = x * (y + z) D. x = x + y * z 26、 当代电子计算机能够自动地处理指定的问题是因为:( ) A.计算机是电动的 B.有解决该问题的计算机程序 C.事先存储了解决该问题的程序 D.以上都不是 27、 以下叙述中最准确的是:( ) A.计算机程序是处理某一问题所有指令的集合 B.计算机程序是处理某一问题所用到的所有数据的集合 C.计算机程序是处理某一问题的所有指令及其数据的集合 D.计算机程序是处理某一问题的所有指令及其数据的有序集合 28、 关于计算机程序设计,以下描述最准确的是:( ) A.程序设计就是用语言来编写程序

c笔试题目及答案

c笔试题目及答案

c笔试题目及答案1. 题目:以下哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 题目:以下哪个关键字用于定义一个函数?A. classB. functionC. defD. int答案:D3. 题目:C语言中,哪个运算符用于将变量的值增加1?A. +=B. --C. +=D. ++答案:D4. 题目:以下哪个选项是C语言中的合法数组声明?A. int arr[10];B. int arr[];C. int arr[10] = {0};D. All of the above答案:D5. 题目:C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. count()答案:A6. 题目:以下哪个选项是C语言中正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. // This is a single line comment/* This is a multi-line comment */D. All of the above答案:D7. 题目:C语言中,哪个关键字用于定义一个结构体?A. structB. classC. unionD. enum答案:A8. 题目:以下哪个选项是C语言中正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>#include "stdio.h"D. All of the above答案:A9. 题目:以下哪个选项是C语言中正确的条件语句?A. if (condition)B. switch (condition)C. case (condition)D. All of the above答案:A10. 题目:C语言中,哪个关键字用于定义一个指针?A. pointerB. ptrC. *D. reference答案:C。

计算机c语言综合试题及答案

计算机c语言综合试题及答案

计算机c语言综合试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的基本数据类型?A. intB. floatC. charD. string答案:D3. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. !=C. <=D. >=答案:A4. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A5. 在C语言中,以下哪个关键字用于声明一个函数?A. functionB. defC. voidD. int答案:C6. C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. All of the above答案:D7. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. _variableD. All of the above答案:D8. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A9. C语言中,以下哪个选项用于定义一个无限循环?A. while(1)B. for(;;)C. do whileD. All of the above答案:D10. 在C语言中,以下哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。

C语言程序设计期末考试试题及答案

C语言程序设计期末考试试题及答案

C语言程序设计期末考试试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述中,正确的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以没有参数D. 函数必须有参数答案:C3. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 下列关于数组的描述中,错误的是?A. 数组可以是多维的B. 数组的下标从0开始C. 数组的大小在编译时确定D. 数组可以动态分配答案:D5. C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. *D. void答案:C6. 在C语言中,以下哪个关键字用于定义一个静态变量?A. staticB. externC. registerD. auto答案:A7. 下列关于C语言中文件操作的描述中,正确的是?A. 文件操作只能使用标准库函数B. 文件指针必须使用FILE类型C. 文件操作必须使用fclose函数关闭文件D. 文件操作不能使用缓冲区答案:B8. 在C语言中,以下哪个关键字用于定义一个宏?A. defineB. typedefC. enumD. struct答案:A9. 下列关于C语言中位运算的描述中,错误的是?A. & 表示按位与B. | 表示按位或C. ^ 表示按位异或D. ~ 表示按位取反答案:B10. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,一个整型变量占用的内存空间通常是______个字节。

答案:42. C语言中,使用______关键字可以定义一个无限循环。

答案:while3. C语言中,数组的元素默认初始化为______。

大专c语言程序设计考试题及答案

大专c语言程序设计考试题及答案

大专c语言程序设计考试题及答案一、选择题(每题2分,共20分)1. C语言中用于定义一个结构体类型的关键字是()。

A. structB. unionC. enumD. typedef答案:A2. 下列选项中,哪个是合法的C语言变量名?()A. 2variableB. _variableC. variable2D. variable!答案:C3. 在C语言中,以下哪个函数用于将字符串转换为浮点数?()A. atoiB. atofC. itoaD. sprintf答案:B4. 以下哪个选项表示在C语言中定义了一个指针变量?()A. int *p;B. int p;C. int *p = 0;D. int p = 0;答案:A5. C语言中,以下哪个循环结构用于执行固定次数的循环?()A. forB. whileC. do-whileD. switch答案:A6. 在C语言中,以下哪个运算符用于取地址?()A. *B. &C. %D. ^答案:B7. C语言中,以下哪个函数用于计算字符串的长度?()A. strlenB. strcpyC. strcatD. strcmp答案:A8. 在C语言中,以下哪个关键字用于定义一个静态函数?()A. staticB. externC. registerD. volatile答案:A9. C语言中,以下哪个关键字用于定义一个全局变量?()A. staticB. externC. registerD. auto答案:B10. 在C语言中,以下哪个符号用于定义一个宏?()A. #B. %C. $D. @答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义数组的关键字是________。

答案:int2. 在C语言中,________运算符用于将一个整数转换为一个浮点数。

答案:(float) 或 (double)3. C语言中,________函数用于输出格式化的字符串。

C程序设计题库(含答案)

C程序设计题库(含答案)
A、定义该变量的程序文件中的函数都可以访问。
B、定义该变量的函数中的定义处以下的任何语句都可以访问。
C、定义该变量的复合语句的定义处以下的任何语句都可以访问。
D、局部变量可用于函数之间传递数据。
答案:D
17.若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:()
C程序设计题库
一、单项选择题
1. 基础知识
1、以下说法中正确的是()
A、C语言程序总是从第一个的函数开始执行
B、在C语言程序中,要调用的函数必须在main()函数中定义
C、C语言程序总是从main()函数开始执行
D、C语言程序中的main()函数必须放在程序的开始部分
答案:C
2、下列字符序列中,可用作C标识符的一组字符序列是()。
A) 10<回车>B) 10.0,22.0,33.0<回车>
22<回车>
33<回车>
C) 10.0<回车> D) 10 22<回车>
22.0 33.0<回车> 33<回车>
答案:B
2.三大结构
(1)下列程序的运行结果是()
#include <stdio.h>
void main()
{
char c1 = '6', c2 = '0';
if( b < 0) c = 0;
else c = c + 1;
printf("%d\n",c);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、单项选择题(30分)1.C++语言规定:在一个源程序中,main函数的位置()。

(A)必须在最开始(B)必须在最后(C)可以任意(D)必须在库函数之后2.语句while(!X);中的表达式!X等价于()。

(A) X==0 (B) X!=0(C) X!=1 (D) X==13.以下对字符数组word进行不正确初始化的是()。

(A)char word[]=‟China\0‟;(B)char word[]={…C‟,‟h‟,‟i‟,‟n‟,‟a‟,‟\0‟};(C)char word[]={“China”};(D)char word[]=”China”;4.下面能正确进行字符串赋值操作的是()。

(A)char s[5]={“ABCDE”}; (B)chars[5]={…A‟,‟B‟,‟C‟,‟D‟,‟E‟};(C)char *s; s=”ABCDE”; (D)char *s; *s=”ABCDE”;5.若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是()。

(A) p1=&m; p2=&p1; (B)p1=&m; p2=&n; *p1=p2;(C) p1=&m; p2=p1; (D)p1=&m; *p2=*p1;6.关于全局变量,下列说法中正确的是()。

(A)全局变量必须定义于文件的首部,位于任何函数定义之前(B)全局变量可以在函数中定义(C)要访问定义于其它文件中的全局变量,必须进行extern说明(D)要访问定义于其他文件中的全局变量,该变量定义中必须用static 加以修饰7.已知系统中已定义函数fp,其函数原型为:int fp(char c,char *k=NULL,double d=100.0);则下列调用中正确地调用fp的是()。

(A)fp(99); (B)fp(…A‟,4.5); (C)fp(“A”,”ABC”); (D)fp(); 8.已知一正常运行的程序中有这样两个语句:int *p1,*p2=&a; p1=b; 由此可知,变量a和b的类型分别是()。

(A) int和int (B) int * 和int (C) int和int * (D)int *和int *9.要使语句p2=new int;能够正常执行,p2应定义为()。

(A) int p2; (B) int *p2; (C) int **p2; (D) int ***p2; 10.下列说法不正确的是()。

(A)一个数组的地就是该数组第一个元素(0号元素)的地址(B)地址0专用于表示空指针(C)地址0可用符号常量NULL表示(D)两个指针相同,是指它们的地址值相同11.在C++中,要求参与运算的数必须是整型的运算符是()。

(A) ^ (B)%(C) ! (D) *12.若x=2,y=3则x&y的结果是()。

(A) 0 (B) 2 (C) 3 (D) 513.在位运算中,操作数每左移一位,其结果相当于()。

(A)操作数乘以2 (B)操作数除以2 (C)操作数乘以4 (D)操作数除以414.表达式0x13^0x17的值是()。

(A) 0x04 (B) 0x13 (C) 0xE8 (D) 0x1715.系统的标准输入文件是指()。

(A)键盘(B)显示器(C)软盘(D)硬盘16.当需要打开A盘上的abc.dat文件用于输入时,则定义文件流对象的语句为()。

(A)fstream fin(“A:abc.dat”);(B)ofstream fin(“A:abc.dat”);(C)ifstream fin(“A:abc.dat”,ios::nocreat);(D)ifstream fin(“A:abc.dat”,ios::app);17.当需要打开当前盘上的xyz.txt文件用于输入输出时,则定义文件流对象的语句为()。

(A)ifstream finout(“xyz.txt”,ios::in&ios::out);(B)ofstream finout(“xyz.txt”,ios::in|ios::out);(C)fstream finout(“xyz.txt”,ios::in&ios::out);(D)fstream finout(“xyz.txt”,ios::in|ios::out);18.在C++中,文件关闭使用流类的成员函数close来实现,close函数的返回值是()。

(A) 0 (B) 1 (C) -1 (D)不返回任何值19.C++中提供了一个成员函数eof,用来判断文件是否真的结束,当到达文件尾时它返回的值为()。

(A)非零值(B) -1 (C) 0 (D) 120.在C++中定义的基类的指针变量()。

(A)只能指向基类的对象(B)只能指向派生类的对象(C)既能指向基类的对象也能指向派生类的对象(D)既不能指向基类的对象也不能指向派生类的对象二、填空题(15分)1.若正确执行了如下语句:intm[20],*p1=m,*p2=&m[15],n;n=p2-p1; 则n的值为( )。

2.P为一指针变量,使p指向下一个单元,然后取该单元的值的表达式是()。

3.已知函数fa的原型为:int fa(int,char *);,pfa是指向fa的指针,则pfa的定义为()。

4.若正常执行了如下语句:int m[]={1,2,3,4,5,6,7,8},*p1=m+7,*p2=&m[2];p1-=3;cout<<*p1<<‟ …<<*p2<<endl;则程序的输出是()。

5.与表达式x&=b等价的另一书写形式是()。

6.设二进制数x的值是11001101,若要通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数是()。

7.在C++中要使函数具有多态性,必须在函数定义的前面加上关键字()。

8.在C++中定义派生类时,对基类的继承方式有三种,分别为private,( )和public。

9.假定用户要给一个名为abc的类定义析构函数,则析构函数名为()。

10.定义重载运算符的一般格式为()。

三、指出函数或程序的功能(12分)1. void swap(int *x,int *y){int t=*x;*x=*y;*y=t;}2. IntNode *FindMax(IntNode *f){ if(f) return NULL;IntNode *p=f;f=f->next;while(f){ if(f->data>p->data)p=f;f=f->next;}return p;}3. int operator==(Student x,char *s){ if(strcmp(x.num,s)==0)return 1;elsereturn 0;}4. void sort(int *a,int n){ for(int i=1;i<n-1;i++){ int k=i-1;for(int j=i;j<=n-1;j++) if(a[j]<a[k]) k=j;if(k!=i-1) {int x=a[i-1];a[i-1]=a[k];a[k]=x;} }}四、读程序,写结果(16分)1.下面程序的运行结果为:#include <iostream.h>int sub(char *s){ char *p=s;while(*p) p++;return(p-s);}void main(){ char *a=”abcde”;int m;m=sub(a);cout<<m<<endl;}2.下面程序的运行结果为:#include<iostream.h>#include<string.h>void main(){ int i;char name[]=”book”for(i=0;i<strlen(name);i++)cout<<”name[“<<i<<”]:”<<n ame[i]<<endl; }3.下面程序运行的结果为:#include<iostream.h>void main(){ int a;int &ref=a;a=10;cout<<a<<”---“<<ref<<endl;int b=20;ref=b;cout<<a<<”---“<<ref<<endl;b--;cout<<a<<”---“<<ref<<endl;}4.下面程序运行的结果为:#include<iostream.h> class Base{ public:virtual void vFn(void){cout<<”Here is Base!\n”; }};class Derived:public Base{ public:void vFn(void){cout<<”Here is Derived\n”; }};void fn(Base *p){ p->vFn(); return; }void main(){ Base objB;Derived objD;cout<<”First call:”;fn(&objB);cout<<”Second call:”;fn(&objD);}五、程序填空(18分)1.下面程序的功能是将两个字符串s1和s2连接起来,请填空。

#include<iostream.h>#include<stdio.h>void main(){ char s1[80],s2[80];gets(s1); gets(s2);join(s1,s2);cout<<s1;}void join(char *p1,char *p2){while(*p1) ______ ;while(*p2) {*p1=______; p1++; p2++; }*p1=_____;}2.以下程序可分别求出方阵a中两个对角线上元素的和。

请填空:#include<iostream.h>#define N 6void main(){ int a[N][N],i,j,k,pr1,pr2;for(i=0;i<N;i++)for(j=0;j<N;j++) cin>>a[i][j];k=N;pr1=0; pr2=0;for(i=0;i<N;i++){ pr1=____ +(*(*(a+i)+i));k=____ ;pr2=____ +(*(*(a+i)+k));}cout<<”pr1=”<<pr1<<‟,‟<<”pr2=”<<pr2<<endl;}3.下面程序的作用是把一个文件的内容复制到另一个文件中,请填空:#include<fstream.h>#include<stdlib.h>void main(int argc,char *argv[]){ char ch;if(argc!=3){ cout<<”You forget to enter a filename.\n”;exit(0); }ifstream inf(______ );ofstream outf(argv[2]);if(!inf){ cout<<”Cannot open infie name.\n”; return 1; } if(!outf){ cou<<”Cannot open outfie name.\n”; return 1; } while(inf){ inf.get(____);outf<<ch;}inf.close();___________ ;}六、编程(10分)定义一个类Base,该类含有公有虚拟成员函数display,然后定义它的两个派生类FirstD和SecondD,这两个派生类中均含有公有成员函数display。

相关文档
最新文档