c++期末考试模拟1

合集下载

c语言期末考试题库及详解答案编程题

c语言期末考试题库及详解答案编程题

c语言期末考试题库及详解答案编程题C语言期末考试题库及详解答案编程题1. 题目:编写一个C程序,实现输入一个整数,判断该整数是否为素数,并输出结果。

答案:```c#include <stdio.h>int isPrime(int n) {if (n <= 1) return 0; // 小于等于1的数不是素数for (int i = 2; i * i <= n; i++) {if (n % 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;}```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[100];printf("请输入一个字符串:");scanf("%s", str);reverseString(str);printf("原始字符串:%s\n", str);printf("反转后的字符串:%s\n", str);return 0;}```3. 题目:编写一个C程序,实现计算并输出一个整数数组中的最大值和最小值。

C语言期末考试试卷附参考答案

C语言期末考试试卷附参考答案

C语言期末考试一试卷附参照答案序列中 10 个数的次序为:,若使用次序比较法,经过三轮排序后,这10 个数的次序为:。

3. 调用字符串办理函数时,应在程序的开头增添预编译命令:#include<>,puts( )函数将一个以结束的字符序列(字符串)输出到终端4.C 语言中,函数分为系统供给的和用户自定义函数两类,也可分为有参函数和两类。

5.函数的递归调用指在调用一个函数的过程中又。

6.函数值只好经过语句返回主调函数。

四、程序改错(求出两个非零正整数的最大条约数在右侧写出正确内容, 5× 2)#include<stdio.h>int fun(int a, b ){ int r,t;if(a<b) {t=a;b=a;a=t;}r=a%b;while(r!=0){a=b;b=r;r=a/b;}return a;}五、阅读程序写出运转结果(4×5)1.# include<stdio.h>int main( ){ void fun(int x);fun(8);printf("\n");}void fun(int x){if(x/2>0) fun(x/2);printf("%d",x);}运转结果为:3. #include <stdio.h># include<math.h>int main( ){ int i,j,n=0;for(i=― 5;i<=5;i++){ if(i%2!=0) n++;for(j=1;j<=abs(i);j++) printf( “ “);,并作为函数值返回。

在错误下边划横线,void main( ){ int n1,n2,a;printf( “please input n1,n2:\n ”);scanf( “%d%d”,&n1,&n2); a=fun(n1,n2);printf("最大条约数是: %d\n",a);}2.# include <stdio.h>void main ( ){ char s1[ ]=” This book ”;char s2[ ]= ” THIS hook ”;int i;for (i=0;s1[i]!= 0’ &&s2[i]!= 0’i++);if(s1[i]!=s2[i]) printf( “ %c” ,s1[i]);}运转结果为:4.#include <stdio.h>int main( ){int i,j,x;int a[10] ={12,3,14,5,26,97,38,9,0,―2}; for(i=0;i<=9;i++){x=a[i];j=i-1;while(j>=0&&x<a[j])六、程序填空题(结果按次号填在下方对应横线上, 10× 2 分)1、编程实现将十进制整数 n 变换成十六进制 2、编写判断能否为素数的函数,在主函数 数输出。

(完整word版)C语言期末模拟试题

(完整word版)C语言期末模拟试题

一、选择题:(20分,每题2分)1.以下不正确的C语言标识符是(D)。

A. ABCB. abcC. a_bcD. ab.c2.C程序是由B构成的。

A. 主程序与子程序B. 主函数与若干子函数C. 一个主函数与一个其它函数D. 主函数与子函数3.以下说法中正确的是:A。

A. 在C语言中,实参与其对应的形参各占独立的存储单元;B.在C语言中,实参与其对应的形参共占同一个存储单元;C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;D. 在C语言中,形参是虚拟的,不占存储单元。

4.设n=3;则n++的结果是(B)。

A. 2B. 3C. 4D. 55.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(A)。

A. 0B. 1C. 2D. 36.凡是函数中未指定存储类别的局部变量其隐含的存储类别是(A)。

A. 自动(auto)B. 静态(static)C. 外部(extern)D. 寄存器(register)7.在while(x)语句中的x与下面条件表达式等价的是:D。

A. x= =0B. x= =1C. x!=1D. x!=08.若有以下说明和语句:struct worker{int no;char *name;}work, *p=&work;则以下引用方法不正确的是(D)。

A. work.noB. (*p).noC. p->noD. work->no9.以下对二维数组进行正确初始化的是(B)。

A.int a[2][3]={{1,2},{3,4},{5,6}};B.int a[][3]={1,2,3,4,5,6};C.int a[2][]={1,2,3,4,5,6};D.int a[2][]={{1,2},{3,4}};10.二维数组a有m列,则在a[i][j]之前的元素个数为:B。

A)j*m+iB)i*m+jC)i*m+j-1D) i*m+j+1二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分) 1.#include<stdio.h>main(){int i=16,j,x=6;j=i+++1;x*=i=j;printf(“%d,%d\n”,j,x);}运行结果是:2.#include<stdio.h>#include<math.h>main(){int a=1,b=4,c=2;float x=10.5,y=4.0,z;z=(a+b)/c+sqrt((double)y)*1.2/c+x;printf(“%f\n”,z);}运行结果是:3.#include<stdio.h>main(){int a,b,c,d;a=c=0;b=1;d=20;if(a) d=d-10;else if(!b)if(!c) d=25;else d=15;printf(“d=%d\n”,d);}运行结果:4.main(){int i=10;switch(i){case 9: i+=1;case 10: i+=1;case 11: i+=1;default : i+=1;}printf(“%d”,i);}运行结果:5.#include<stdio.h>main(){int a[]={1,2,3,4},i,j,s=0;j=1;for(i=3;i>=0;i--){s=s+a[i]*j;j=j*10;}printf("s=%d\n",s);}运行结果:6.func(int x){ x=20; }main(){int x=10;func(x);printf(“%d”,x);}运行结果:三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。

《C语言程序设计》期末笔试模拟试卷及参考答案

《C语言程序设计》期末笔试模拟试卷及参考答案
11.若有定义:
typedef char* string;
#define str char *
int a=4;
struct{
int x,*y;
}z={10,&a},*p=&z;
则如下不等价的是:(11)A
A.string name,sign;与 strname,sign; B.*p->y++与*(p->y++)
};
B.intb[3][3]={{1,2,3},4,5,6,7,{8,9}};
C. float c[sizeof(sin(1))]={1,‘\n’};
D.char ch[ ][10]={“Beijing”,“Nanjing”},*p[ ]={ ch[0],ch[1]};
2.如下哪个程序语法、语义都正确,且能获得正确的运行结果(2)A
case red : col++;
case green : col++;break;
case red+green : col++;
}
printf(“%d”,col);
}
13.已知某函数内有声明:“int a[3][3], (*ptr)[3]=a, *p=a;”,则下列(13)能正确引用数组元素a[1][2]。B
5.
6.
7.
3. 若有声明:enumd{e,s,w,n}c=s;则表达式“ops”+c值的类型是(3)。B
A.enumdB.char *C.intD.int *
4.下列叙述中除(4)之外都是正确的。B
A.引用函数说明中指定的形参名,不必与函数定义中对应的形参名相同。

C语言期末考试模拟试卷

C语言期末考试模拟试卷

1.以下所列的C语言常量中,错误的是()A) 0xFF B) 1.2e0.8 C)”fedsada”D) '\72'2.在下列标识符中,能用作用户自定义标识符的是()A. 5abB. staticC.IntD. struct3.设x为整数,C中能正确地表达数学式0≤x<5的是()A. 0<=x<5B. x=0||x=1|| x=2||x=3||x=4C. x>=0||x<5D. !(x<0||x>=5)4.执行下列程序后,x的值为( )x = 3; 9 + 3 - 2, x = x * 5, y = 23, x++;A. 10B. 15C. 16D. 234. int i = 5; float x; 执行x = 8 / i; 后x的值为()A. 1.6B. 1C. 1.0D. 2.05.下列关于表达式的书写中正确的是()A. 4 * 2.5 % 3B. x = y + z = 4C. ++5D.x += y *= z + 36.设有说明“int x=5,y=7,z=8;”,执行表达式z+=x++||y++|| ++z后,则x,y,z的值分别是()A. 6、7、9B. 6、8、10C. 6、8、8D. 6、8、17.若int x=2, y=3, z=7;则表达式y-z? x+y:x*y的值为()A. 5B. 1C. -4D. 68.设e1和e3是表达式,与语句for(e1; ;e3) s;等同的语句是()A. for(e1;e1;e3)s;B. for(e1;e3;e3)s;C. for(e1;0;e3)s;D. for(e1;1;e3)s;9. a,b已经定义为int类型,则以下程序段中循环体总的执行次数是()for(a = 8; a ; a=a-2)for(b = 0;b < 3;j++){……}A. 12B. 15C. 16D. 810. 设有语句:char s[ ]=“xy\0\123\n7”; 则 strlen(s)的值是()A. 2B.6C. 7D. 311.数组作为函数的形参时,把数组名作为实参,传递给函数的是()A.数组的首地址 B.数组的元素个数C.数组中的各元素值 D.数组的大小12.下列说明或赋值语句,不正确的是()A. char p[12];p[0] =‘V’;B. char p[12]; p=”Visual C++”;C. char p[12] = {‘v’,’i’,’s’,’u’};D. char p[ ]=”Visual”;13.判断字符串s1是否大于s2,应当使用()A.if(a >b) B.if(a> = b)C.if( strcmp(s1,s2) > 0 ) D.if( strcmp(s1,s2)< 0 )14.设int x=10,* p=&x;,则*p的值是()A. 变量x的地址值B. 无意义C. 变量p的地址值D. 1015.若p为指针变量,y为变量,则y = *p++;的含义是()A.y = *p; p++ B.y = (*p)++C.y = p; p++ D.p++; y = *p16.若int x[3][4],(*p)[4] = a;则下列表示a[2][3]数组元素的方法中,()是正确的。

大学生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值的语句是。

一级c类计算机模拟考试试题及答案

一级c类计算机模拟考试试题及答案

一级c类计算机模拟考试试题及答案一级C类计算机模拟考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述中,错误的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以嵌套定义D. 函数可以递归调用答案:C3. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fgetcD. All of the above答案:D4. C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B5. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[10] = "Hello";B. char str[] = "Hello";C. char str[10] = {'H', 'e', 'l', 'l', 'o', '\0'};D. All of the above答案:D6. C语言中,以下哪个选项是正确的数组声明?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2};D. All of the above答案:D7. 在C语言中,以下哪个关键字用于定义指针?A. intB. charC. *D. &答案:C8. C语言中,以下哪个选项是正确的循环结构?A. forB. whileC. do-whileD. All of the above答案:D9. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A10. C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI (3.14159)C. #define PI 3.14159D. All of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:________。

C程序设计期末模拟考试 机考

C程序设计期末模拟考试  机考

C语言程序设计期末模拟考试一、选择题(共20题,每1分,共20分)1.一个可执行的C程序的开始执行点是:()。

A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数2.下列标识符中,合法的用户标识符为()。

A. monthB. 5xyC. intD. your name3.若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:()。

A. intB. longC. floatD. double4.在一个函数内部定义的变量是:()。

A. 简单变量B. 局部变量C. 全局变量D. 标准变量5.现有如下程序#include "stdio.h"void fun(int x){ printf("x=%d\n",++x);}int main(){ fun(12+5); return 0;}则程序的输出结果是()。

A. x=12B. x=13C. x=17D. x=186.有如下定义:struct date{ int y ;int m ;int d ;};struct person{ char name[20];char sex;struct date birthday;}a;对结构体变量a的出生年份进行赋值时,下面正确的赋值语句是()。

A. y =1958B. birthday.y=1958C. a.birthday.y =1958D. a.y =19587.若a为整型变量,则语句a= -2L; printf("%d\n",a); 执行的结果是()。

A. 赋值不合法B. 输出为不确定的值C. 输出值为-2D. 输出值为28.下列变量定义中合法的是()。

A. short _a=1-.1e-1;B. double b=1+5e2.5;C. long do=0xfdaL;D. float 2_and=1-e-3;9.表达式17%4 /8的值为:()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a.更慢b.更快c.次数更多d.以上都不是
5.默认参数的值由___________________提供。
a.该函数b.调用程序c.上述二者d.以上都不是
6.在C++中,混合类型表达式_____________。
a.允许存在b.为一错误c.从int到float d.从float到int
7.表达式long(intVar)也可表示为_______________。
};
class Trapezoid:public Shape
{public:
Trapezoid(double t,double b,double h):top(t),bottom(t),height(h){}
virtual double area() const {return 0.5*(top+bottom)*height;}
六、编程题(20分)
1.编写程序:定义抽象基类Shape,由它派生出五个派生类:Circle(圆形)、Square(正方形)、
Rectangle(长方形)、Trapezoid(梯形)和Triangle(三角形),用虚函数分别计算各种图形的面积,并求出它们的和。要求用基类指针数组。使它的每一个元素指向一个派生类的对象。
Count a2, a3,a4;
Count::display_total();
a2.display();
a4.display();
return 0;
}
3)#include <iostream >
using namespace std;
class BASE
{
char c;
public:
BASE(char n):c(n){}
cout<<count(x)<<'\n';
return 0;
}
执行结果:
2)
#include<iostream>
using namespace std;
class Count{
private:
static int counter;
int obj_id;
public:
Count(); //constructor
{
public:
B(const char*n)_____(5)_______{}
void PrintName( ) {cout<<”name:”<<name<<endl;};
};
void main( )
{
B b1(“Ling Li”);
b1.PrintName( ) ;
} //执行结果:name: Ling Li
static void display_total(); //static function
void display();
~Count(); //destructor
};
int Count::counter; //definition of static data member
Count::Count() //constructor
注:主函数中定义如下对象
Circle circle(12.6);
Square square(3.5);
Rectangle rectangle(4.5,8.4);
Trapezoidtrapezoid(2.0,4.5,3.2);
Triangle triangle(4.5,8.4);
C++模拟试卷(1)参考答案
{
cout <<"Number of objects created is = "<<counter<<endl;
}
void Count::display()
{
cout << "Object ID is "<<obj_id<<endl;
}
int main(void)
{
Count a1;
Count::display_total();
{
counter++;
obj_id = counter;
}
Count::~Count() //destructor
{
counter--;
cout<<"Object number "<<obj_id<<" being destroyed\n";
}
void Count::display_total() //static function
a. intvar = long; b. intVar(long) c. (long)intVar d.以上都不是
8.静态数据成员的生存期_________________。
a.与整个程序相同b.不长于类的生存期
c.取决于创建的对象数d.以上都不是
9.要让一个类中的所有对象具有共同的数据,请使用__________________。
{
protቤተ መጻሕፍቲ ባይዱcted:
int basedata;
};
class border: public window
{ };
class menu: public window
{ };
class border_and_menu: public border, public menu
{
public:
int show()
{ return basedata;
}
4)改正下面程序段中的错误,写出整个正确的程序段
template<T>
void print(T *a)
{cout<<a<<’\n’;}
void main( )
{
const int x=0;
cout<<y<<’\n’;
int y;
x=5;
int* p
p=&y;
print(p);
C++模拟试卷(1)
一、判断题(15分)(对的打√,错的打╳)
1.友元函数用于允许一个函数访问不相关类的私有部分。
2.构造函数可以被继承。
3.动态绑定的多态性是通过虚函数实现的。
4.在c++中,传引用调用等同于传地址调用。
5.重载函数必须有不同的参数列表。
6.可以用delete释放不是用new运算符分配的内存。
a.常数成员变量b.私有数据成员
c.静态数据成员d.以上都是
10.设置虚基类的目的是:
a.简化程序b.消除二义性c.提高运行效率d.减少目标代码
三、指出下列程序片段中的错误标号,写出正确语句或解释错在何处。(20分)
1)①int index=675;
②const int *ptr=&index;
③int *const ntptr=&index;
protected:
double radius;
};
class Square:public Shape
{public:
Square(double s):side(s){}
virtual double area() const {return side*side;}
protected:
double side;
{ int y=10; //y应先声明后使用,并给初值
const int x=0;
cout<<y<<'\n';
//x=5; x为const,去掉该句
int* p;
p=&y;
print(p);
//return 0; main返回为void,去掉该句
}
四、写出下面程序的执行结果:(15分)
1)
2)
3)XY
{ };
class menu: virtual public window
{ };
4)整个正确的程序段(参考):
#include <iostream.h> //加本句
template<typename T> //加typename
void print(T *a)
{cout<<a<<'\n';}
void main( )
④*ptr=555;
⑤*ntptr=666;
⑥int another=8;
⑦ptr=&another;
⑧ntptr=&another;
2)①int arrp;
②arrp=new int[15];
③delete arrp;
3)下面程序为什么会编译错误,并改正错误(提出解决办法)。
class window
return 0;
}
五、程序填空:(10分)
#include <iostream>
using namespace std;
class A
{
______(1)______
char name[80];
public:
A( ____(2)______ ) {____(3)______ }
};
class B_____(4)_______
return 0;
}
四、写出下面程序的执行结果:(15分)
1)#include <iostream>
using namespace std;
class A
{friend double count(A&);
相关文档
最新文档