最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

C语言程序设计模拟试题

IT圈 admin 32浏览 0评论

2024年6月1日发(作者:随俊郎)

广播电视大学《C++语言程序设计》模拟试题

题 号

分 数

评卷人

2001年元月

总 分

得分

一、填空(每空2分,共20分) 参考答案

1.C++源程序文件扩展名为_____________。

ed long 型数据占__________字节存储空间。

3.执行语句cout<<"d:datac++";后,输出结果是___________

____________________。

4.表达式8|3的结果是__________。

5.全局变量和__________________若在定义时未进行初始化,则自动初始化为0。

6.将s初始化为值是"Hello!"的指针常量,初始化语句是_____________________。

7.类中的成员只能为该类的成员函数及该类的派生类中的成员函数访问,则应加上访问

属性__________________。

8.定义输出文件流f,并以追加数据方式打开相应文件"a:",定义f的语句是

_________________________________。

9.设文件中的一个函数要访问在另一个文件中定义的int型变量x,则在

中x应定义为__________________________。

10.函数模板的说明格式是:template__________________函数定义。

评卷人 得分

二、单项选择题(每空2分,共20分)参考答案

1.类型修饰符unsigned修饰( )类型是错误的。

A char B int C long int D float

2.下列变量名中,( )是合法的。

A _var B bye-bye C int D 123_cc

3.设int a=3,* p=&a;,则*p的值是( )。

A 变量a的地址值 B 无意义 C 变量p的地址值 D 3

4.设int m=0;,下列表示引用的方法中,( )是正确的。

A int &x=m; B int &y=10; C int &z; D float &t=&m

5.循环for(int i=0,x=0;!x&&i<=5;i++);的循环体执行次数是( )。

A 5 B 6 C 1 D 无限

6.磁盘文件操作时,在打开磁盘文件的访问方式中,( )是以追加数据

方式打开文件的。

A in B out C app D ate

7.类X中,若没有定义构造函数,则默认的构造函数是( )。

A X ( ){ } B X (X & x){ *this=x;} C ~X ( ){ } D 不存在

8.设int * p2=&x,* p1=a;*p2=*b;则变量a和b的类型分别是( )。

A int和int B int * 和int C int和int * D int * 和int *

9.设p为指针变量,则以下表达式正确的是( )。

A --p++ B --++p C --(p+5) D (p-5)++

10.设void f1(int &x,char * p);int m;char s[ ]="c++";以下调用合法的是( )。

A f1(&m,&s); B f1(&m,s); C f1(m,s); D f1(m,&s);

评卷人 得分

三、回答问题(每题4分,共20分)参考答案

1.设int a[3][4];double b[3][4][5];

请写出数组指针pa和pb的定义,使其分别与数组名a和b等价。

2.设int f1(int n,char * s);char * f2(int n,char * s);

请写出函数指针pf1和pf2的定义,使其分别指向上述两个函数。

3.请初始化一维指针数组week。其初值表初值为"Sun","Mon","Tue","Wed","Thu",

"Fri"和"Sat"。

4.要使语句p1=new int(10) ;p2=new double [10];能正常执行,写出p1和p2的定

义。

5.设有int f1(int n){n+=2;return n*n;}

int f2(int &n){n+=2;return n*n;}

执行 int m=5,n=3;

m=f1(n);cout<

m=f2(n);cout<

写出结果。

评卷人 得分

四、(每题10分,共20分)参考答案

1.写出下列程序的执行结果。

# include

void main()

{

int i=1,j=2,k=3,a=10;

if (!i) a--;

else if(j)

if(k) a=5;

else a=6;

a++;

cout<

if(i

if(i!=3)

if(!k)

a=1;

else if(k)

a=5;

a+=2;

cout<

}

2.设a盘上文本文件中保存有0至100之间的所有奇数,下列程序将全部数据

及其和输出至屏幕上,请将程序补充完全。

# include

# include ____________

void main(void)

{

_____________ f1("a:",ios::in|ios::nocreate);

if (!f1) {

cerr<<"a: file not open!"<

exit(1);

}

int x,s=0;

while (___________){f1>>x;cout<

f1.____________;

}

评卷人 得分

五、(每题10分,共20分)参考答案

1.用while循环编程,求自然数1至100之间各奇数平方和并输出。

2.设有函数void sum(int score[ ][5],int row);,它将数组score每行后四个元素

之和用首元素保存。试①编写这个函数 ②编写主函数并初始化相应实参调用这个函数,并

输出结果。

关闭窗口

C语言程序设计期末试题C

一、选择题:(20分,每题2分)

1.以下不正确的C语言标识符是( )。

2.C程序是由 构成的。

A. 主程序与子程序

B. 主函数与若干子函数

C. 一个主函数与一个其它函数

D. 主函数与子函数

3.以下说法中正确的是: 。

A. 在C语言中,实参与其对应的形参各占独立的存储单元;

B.

在C语言中,实参与其对应的形参共占同一个存储单元;

C.

在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;

D. 在C语言中,形参是虚拟的,不占存储单元。

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

A. 2 B. 3 C. 4 D. 5

5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是( )。

A. 0 B. 1 C. 2 D. 3

6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是( )。

A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register)

7.在while(x)语句中的x与下面条件表达式等价的是: 。

A. x= =0 B. x= =1 C. x!=1 D. x!=0

8.若有以下说明和语句:

struct worker

{

int no;

char *name;

}work, *p=&work;

则以下引用方法不正确的是( )。

A. B. (*p).no C. p->no D. work->no

9.以下对二维数组进行正确初始化的是( )。

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]之前的元素个数为: 。

A)

j*m+i

B)

i*m+j

C)

i*m+j-1

D) i*m+j+1

二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分)

1.#include

main()

{

int i=16,j,x=6;

j=i+++1;

x*=i=j;

printf(“%d,%dn”,j,x);

}

运行结果是:

2.#include

#include

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(“%fn”,z);

}

运行结果是:

3.#include

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=%dn”,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

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=%dn",s);

}

运行结果:

6.func(int x)

{ x=20; }

main()

{

int x=10;

func(x);

printf(“%d”,x);

}

运行结果:

三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(20

分,每空2分)

1.已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年

的程序如下:

main()

{

int year,leap;

scanf(“%d”,&year);

if( )

leap=1;

else leap=0;

if( ) printf(“是润年”);

else printf(“不是润年”);

}

2.将100至200间不能被3整除的数输出:

main()

{

int n;

for(n=100;n<=200;n++)

{

if(n%3==0) ;

printf(“%d ”,n);

}

}

3.判断m是否是素数

#include

main()

{

int m,i,k;

scanf(“%d”,&m); k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0) ;

if(i>=k+1) printf(“%d is a prime numbern”,m);

else printf(“%d is not a prime numbern”,m);

}

4.给定一3*4的矩阵,求出其中值最大的元素的值,及所在的行列号。

main()

{

int i,j,row=0,colum=0,max;

static int a[3][4]={{1,2,3,4}{9,8,7,6}{10,-10,-4,4}};

;

for(i=0;i<=2;i++)

for(j=0;j<=3;j++)

if(a[i][j]>max)

{

max=a[i][j];

;

;

}

printf(“max=%d,row=%d,colum=%dn”,max,row,colum);

}

5.下面函数的功能是将两个字符串s和t连接起来。

char *conj(char *s, char *t)

{

char *p=s;

while(*s) ;

while(*t)

{

*s= ;

s++;

t++;

}

*s=’0’;

;

2024年6月1日发(作者:随俊郎)

广播电视大学《C++语言程序设计》模拟试题

题 号

分 数

评卷人

2001年元月

总 分

得分

一、填空(每空2分,共20分) 参考答案

1.C++源程序文件扩展名为_____________。

ed long 型数据占__________字节存储空间。

3.执行语句cout<<"d:datac++";后,输出结果是___________

____________________。

4.表达式8|3的结果是__________。

5.全局变量和__________________若在定义时未进行初始化,则自动初始化为0。

6.将s初始化为值是"Hello!"的指针常量,初始化语句是_____________________。

7.类中的成员只能为该类的成员函数及该类的派生类中的成员函数访问,则应加上访问

属性__________________。

8.定义输出文件流f,并以追加数据方式打开相应文件"a:",定义f的语句是

_________________________________。

9.设文件中的一个函数要访问在另一个文件中定义的int型变量x,则在

中x应定义为__________________________。

10.函数模板的说明格式是:template__________________函数定义。

评卷人 得分

二、单项选择题(每空2分,共20分)参考答案

1.类型修饰符unsigned修饰( )类型是错误的。

A char B int C long int D float

2.下列变量名中,( )是合法的。

A _var B bye-bye C int D 123_cc

3.设int a=3,* p=&a;,则*p的值是( )。

A 变量a的地址值 B 无意义 C 变量p的地址值 D 3

4.设int m=0;,下列表示引用的方法中,( )是正确的。

A int &x=m; B int &y=10; C int &z; D float &t=&m

5.循环for(int i=0,x=0;!x&&i<=5;i++);的循环体执行次数是( )。

A 5 B 6 C 1 D 无限

6.磁盘文件操作时,在打开磁盘文件的访问方式中,( )是以追加数据

方式打开文件的。

A in B out C app D ate

7.类X中,若没有定义构造函数,则默认的构造函数是( )。

A X ( ){ } B X (X & x){ *this=x;} C ~X ( ){ } D 不存在

8.设int * p2=&x,* p1=a;*p2=*b;则变量a和b的类型分别是( )。

A int和int B int * 和int C int和int * D int * 和int *

9.设p为指针变量,则以下表达式正确的是( )。

A --p++ B --++p C --(p+5) D (p-5)++

10.设void f1(int &x,char * p);int m;char s[ ]="c++";以下调用合法的是( )。

A f1(&m,&s); B f1(&m,s); C f1(m,s); D f1(m,&s);

评卷人 得分

三、回答问题(每题4分,共20分)参考答案

1.设int a[3][4];double b[3][4][5];

请写出数组指针pa和pb的定义,使其分别与数组名a和b等价。

2.设int f1(int n,char * s);char * f2(int n,char * s);

请写出函数指针pf1和pf2的定义,使其分别指向上述两个函数。

3.请初始化一维指针数组week。其初值表初值为"Sun","Mon","Tue","Wed","Thu",

"Fri"和"Sat"。

4.要使语句p1=new int(10) ;p2=new double [10];能正常执行,写出p1和p2的定

义。

5.设有int f1(int n){n+=2;return n*n;}

int f2(int &n){n+=2;return n*n;}

执行 int m=5,n=3;

m=f1(n);cout<

m=f2(n);cout<

写出结果。

评卷人 得分

四、(每题10分,共20分)参考答案

1.写出下列程序的执行结果。

# include

void main()

{

int i=1,j=2,k=3,a=10;

if (!i) a--;

else if(j)

if(k) a=5;

else a=6;

a++;

cout<

if(i

if(i!=3)

if(!k)

a=1;

else if(k)

a=5;

a+=2;

cout<

}

2.设a盘上文本文件中保存有0至100之间的所有奇数,下列程序将全部数据

及其和输出至屏幕上,请将程序补充完全。

# include

# include ____________

void main(void)

{

_____________ f1("a:",ios::in|ios::nocreate);

if (!f1) {

cerr<<"a: file not open!"<

exit(1);

}

int x,s=0;

while (___________){f1>>x;cout<

f1.____________;

}

评卷人 得分

五、(每题10分,共20分)参考答案

1.用while循环编程,求自然数1至100之间各奇数平方和并输出。

2.设有函数void sum(int score[ ][5],int row);,它将数组score每行后四个元素

之和用首元素保存。试①编写这个函数 ②编写主函数并初始化相应实参调用这个函数,并

输出结果。

关闭窗口

C语言程序设计期末试题C

一、选择题:(20分,每题2分)

1.以下不正确的C语言标识符是( )。

2.C程序是由 构成的。

A. 主程序与子程序

B. 主函数与若干子函数

C. 一个主函数与一个其它函数

D. 主函数与子函数

3.以下说法中正确的是: 。

A. 在C语言中,实参与其对应的形参各占独立的存储单元;

B.

在C语言中,实参与其对应的形参共占同一个存储单元;

C.

在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;

D. 在C语言中,形参是虚拟的,不占存储单元。

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

A. 2 B. 3 C. 4 D. 5

5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是( )。

A. 0 B. 1 C. 2 D. 3

6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是( )。

A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register)

7.在while(x)语句中的x与下面条件表达式等价的是: 。

A. x= =0 B. x= =1 C. x!=1 D. x!=0

8.若有以下说明和语句:

struct worker

{

int no;

char *name;

}work, *p=&work;

则以下引用方法不正确的是( )。

A. B. (*p).no C. p->no D. work->no

9.以下对二维数组进行正确初始化的是( )。

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]之前的元素个数为: 。

A)

j*m+i

B)

i*m+j

C)

i*m+j-1

D) i*m+j+1

二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分)

1.#include

main()

{

int i=16,j,x=6;

j=i+++1;

x*=i=j;

printf(“%d,%dn”,j,x);

}

运行结果是:

2.#include

#include

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(“%fn”,z);

}

运行结果是:

3.#include

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=%dn”,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

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=%dn",s);

}

运行结果:

6.func(int x)

{ x=20; }

main()

{

int x=10;

func(x);

printf(“%d”,x);

}

运行结果:

三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(20

分,每空2分)

1.已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年

的程序如下:

main()

{

int year,leap;

scanf(“%d”,&year);

if( )

leap=1;

else leap=0;

if( ) printf(“是润年”);

else printf(“不是润年”);

}

2.将100至200间不能被3整除的数输出:

main()

{

int n;

for(n=100;n<=200;n++)

{

if(n%3==0) ;

printf(“%d ”,n);

}

}

3.判断m是否是素数

#include

main()

{

int m,i,k;

scanf(“%d”,&m); k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0) ;

if(i>=k+1) printf(“%d is a prime numbern”,m);

else printf(“%d is not a prime numbern”,m);

}

4.给定一3*4的矩阵,求出其中值最大的元素的值,及所在的行列号。

main()

{

int i,j,row=0,colum=0,max;

static int a[3][4]={{1,2,3,4}{9,8,7,6}{10,-10,-4,4}};

;

for(i=0;i<=2;i++)

for(j=0;j<=3;j++)

if(a[i][j]>max)

{

max=a[i][j];

;

;

}

printf(“max=%d,row=%d,colum=%dn”,max,row,colum);

}

5.下面函数的功能是将两个字符串s和t连接起来。

char *conj(char *s, char *t)

{

char *p=s;

while(*s) ;

while(*t)

{

*s= ;

s++;

t++;

}

*s=’0’;

;

发布评论

评论列表 (0)

  1. 暂无评论