您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页计算机二级 程序设计基础试题及答案四

计算机二级 程序设计基础试题及答案四

来源:意榕旅游网


《 程序设计基础 》考试试卷四

一、1.以下叙述中正确的是( )

A. C程序中注释部分可以出现在程序中任意合适的地方 B. 花括号\"{\"和\只能作为函数体的定界符

C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名 D. 分号是C语句之间的分隔符,不是语句的一部分

2.判断下面标识符中哪个是C语言中合法的用户定义标识符( )

A. 2a1b B. a%bd C. _123 D. char 3.设有以下定义  int a=0; double b=1.25; char c=‟A‟; #define M 2  则下面语句中错误的是( )  A. a--; B. b--; C. c--; D. M--;

4.有两条语句: static char x[]=”abcde”;

static char y[]={„a‟,‟b‟,‟c‟,‟d‟,‟e‟}; 则下列说法中正确的是( )

A. 数组x和数组y长度相同 B. 数组x长度大于数组y长度 C. 数组x长度小于数组y长度 D. 以上三种说法均错误; 5.设整型变量a=13,则经运算a+= a/=a%=5后,a的值为( ) A. 17.333 B. 17 C. 0 D. 2

6. 已知:int n,i=1,j=2;执行语句n=i7.有函数定义如下:当自变量x<0时y=-1;当x=0时y=0;当x>0时y=1;以下程序片段能实现该函数功能的是( ):

A. if(x>=0) B. y=-1; C. if(x>=0) D. y=0; if(x>0) y=1; if(x!=0) if(x>0) y=1; if(x>=0) else y=-1; if(x>0) y=1 ; else y=0; if(x>0) y=1; else y= 0; else y=0; else y= -1; else y=-1; 8.当a=2,b=1,c=3,d=4,m和n值为1时,(m=a>b)||(n=c>d)的值是( )

A. TRUE B. FALSE C. 1 D.0 9.在C语言程序中,以下说法正确的是( )

A. main函数内部可嵌套定义子函数 B. main函数必须出现在所有函数之前 C. main函数必须出现在所有函数之后 D. main函数是程序执行的入口

10.关于局部变量和全局变量说法正确的是( ):

A. 在main函数中定义的变量都为全局变量

B. 当全局变量与局部变量同名时,全局变量起作用 C. 当全局变量与局部变量同名时,局部变量起作用

第 1 页/共 4 页

D. 以上说法都不正确

11.下列关于switch和break语句的讨论中,只有( )是正确的。

A. break语句是switch 语句的一部分

B. 在switch语句中可以根据需要使用或不使用break语句 C. switch语句中必须使用break语句 D. 以上三种说法都不正确。

12.设main函数中有定义float a[8],此外,程序中还定义了以下函数

 void printarray(float a[8],int n){ int i; for(i=0;iA. 调用之前的函数声明可以写为void printarray(float a[], int n); B. 调用之前的函数声明可以写为void printarray(float [], int) ; C. 调用语句可以为printarray(a[8],8);

D. 调用语句可以为printarray(a,8); 13.以下说法正确的是( )

A. 若在某函数中用static声明一个局部变量,则该变量在此函数外也起作用 B. 若用static声明一个函数,则该函数可被其它文件中的函数调用 C. 若用static声明一个函数,则该函数不能被其它文件中的函数调用 D. 以上说法都不正确 14.设int i=5,且变量i的地址是2001,int *p=&i,变量p的地址是2011,则表达式&*p的值为(A. 5 B. 2001 C. 2011 D. 无法确定

15. 若有如下定义,则下面在scanf函数调用语句中对结构体成员的引用不正确是( )。 struct pupil

{ char name[20]; int age; int sex; }pup[5],*p;

A. scanf(\"%d\

B. scanf(\"%s\C. scanf(\"%d\D. scanf(\"%d\16 有以下程序段

int k=0

while(k=1)k++;则while 循环执行的次数是( )

A. 无限次 B. 有语法错,不能执行 C. 一次也不执行 D. 执行1次 17有定义struct ex{ int x ; float y; char z ;} example;则下面的叙述中不正确的是( ) A. struct结构体类型的关键字 B. example是结构体类型名 C. x,y,z都是结构体成员名 D. struct ex是结构体类型

18 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是()

A. EOF B. -1 C. 非零值 D. NULL 19 以下程序执行后sum的值是()

第 2 页/共 4 页

void min() { int i , sum;

for(i=1;i<6;i++) sum+=i; printf(\"%d\\n\

A.15 B. 14 C. 不确定 D.0

20 当调用函数时,实参是一个数组名,则向函数传送的是( )

A. 数组的长度 B. 数组的首地址 C. 数组每一个元素的地址 D. 数组每个元素中的值

二、读程序写执行结果(每题5分,共20分)

1.#include void main() { int x=3

do{

printf(\"%d \ }while (!(--x));} 3、void main() { double d=3.2; int x,y; x=1.2;

y=(x+3.8)/5;

printf(“%d\\n”,d*y); }

2、#include

void swap(int x, int y) { int temp; temp=x; x=y; y=temp; } void main() { int a[]={3,5};

#include 4 .swap a[0], a[1]);

void main() printf(“%d,%d\\n” ,a[0],a[1]); } { int

a[ ]={1,2,3,4,5,6,7,8,9,0,},*p; p=a;

printf(\"%d\\n\

三、程序改错题(每题5分,共20分)

}

1、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。 #include

#define PI 3.14 void main(){ int r; float s;

scanf(\"%d\ s=PI*r^2;

printf(\"s=%f\\n\1 当n>5

2、以下程序用语实现分段函数cost= 0.7 当 3#include 0.5 当n<3 void main(){

int n; float cost; if(n>5) cost=1; if(n>3) cost =0.7; else cost=0.5;}

3、以下程序用于从终端教授一个字符赋给c,如c不为换行符就循环输出,为换行符则停止

#include

第 3 页/共 4 页

void main(){ c=getchar(); while(c!=‟\\n‟)

printf(“%c”,c);}

4、以下程序用于实现矩阵的转置

#include void main(){

int a[][2]={{1,2},{3,4}}; int i,j,temp; for(i=0;i<2;i++) for(j=0;j<2;j++)

{ a[i][j]=a[j][i]; a[j][i]= a[i][j];}}

四、程序填空(共10分)

1.本程序用于求100-500之间的素数并输出

# include #include void main()

{ int m, i, n; float k; m=100;

while(m<=500) { ;

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

if(m%i= =0) ; if( i>k )

{printf(“%d ”,m);

n++; } m++;}}

2.本程序用于动态建立一个链表。链表中每个结点包括学号、成绩及指向下一结点的指针,整个链表共10个结点。

#include #include #define NULL 0 struct student { int num; float score; ; };

void main( )

{ struct student *head=NULL,*p1,*p2; int n=0;

do{

第 4 页/共 4 页

p1= ;

printf(“请输入学生的学号和成绩:\\n”); scanf(“%d,%f”,&p1->num,&p1->score); n=n+1;

if(n= =1) head=p1; else p2->next=p1; ; }while(n<10); p1->next=NULL;}

五、编程题1.编程求1-1/3+1/5-1/7+……+1/97-1/99的值并输出。

2.定义一8个元素的整数数组,读入各元素值后用选择法由小到大排序,之后输出排序结果。 3.读入正整数n,用递归法和非递归法求F(n)并输出,已知F(1)=1; F(2)=1; 当n>2时

F(n)=F(n-1)+F(n-2)。

第 5 页/共 4 页

《 程序设计基础 》试卷四答案

一、1A 2C 3D 4B 5D 6C 7C 8C 9D 10D

11B 12C 13C 14B 15A 16A 17B 18C 19C 20B

二1. 1 -2 2. 3,5 3. 0 4. 10

三、1、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。

#include #define PI 3.14 void main(){ int r; float s;

scanf(\"%d\ //改为scanf(“%d”,&r); s=3.14*r^2; //改为s=3.14*r*r; printf(\"s=%f\\n\1 当n>5

2、以下程序用语实现分段函数cost= 0.7 当 3#include 0.5 当n<=3 void main(){

int n; float cost; if(n>5) cost=1;

if(n>3) cost =0.7; //改为else if(n>3)cost=0.7; else cost=0.5;}

3、以下程序用于从终端教授一个字符赋给c,如c不为换行符就循环输出,为换行符则停止

#include void main(){

c=getchar(); //此句去掉

while(c!=‟\\n‟) //此句改为while((c=getchar())!=‟\\n‟); printf(“%c”,c);}

4、以下程序用于实现矩阵的转置

#include void main(){

int a[][2]={{1,2},{3,4}}; int i,j,temp; for(i=0;i<2;i++)

for(j=0;j<2;j++) //此句改为for(j=i;j<2;j++)

{ a[i][j]=a[j][i]; a[j][i]= a[i][j];//此句改为temp=a[i][j]; a[i][j]=a[j][i]; a[j][i]=temp;}}

四、1、 K=sqrt(m) ;

break ;

2. struct student *next ;

第 6 页/共 4 页

(struct student *)malloc(sizeof(struct student )); p2=p1 ; 五、编程题(每题10分,共30分PAD图或N-S图占一半的分)

1.#include void main() { int i,sign; float term,sum; sign=1; sum=1; for(i=2;i<=50;i++) { sign*=-1; term=sign*1.0/(2*i-1); sum+=term;}

printf(\"the result is:%f\\n\

2. #include

void main()

{ int a[8], i, j, min,temp;

printf(“请输入原数组:\\n”);

for(i=0;i<8;i++)scanf (“%d”,&a[i]); for(i=0;i<8;i++){ min=i; for(j=i+1;j<8;j++)

if(a[min]>a[j])min=j; temp=a[min]; a[min]=a[i]; a[i]=temp;}

printf(“排序后为:\\n”);

for(i=0;i<8;i++)printf(“%d ”,a[i]);}

第 7 页/共 4 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务