专接本计算机C语言程序设计模拟试题及答案(一)

时间:2025-03-11

专接本计算机C语言程序设计模拟试题及答案(一)

一、单项选择题(每小题2分,共20分)

1. 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是( )

A) p=2*(int*)malloc(sizeof(int)); B) p=(int*)malloc(2*sizeof(int)); C) p=(int*)malloc(4*2); D) p=(int*)calloc(2,sizeof(int)); 2. 设有int x=11; 则表达式(x++ * 1/3) 的值是( )

A) 3 B) 4 C) 11 D) 12

3. 下列程序执行后的输出结果是(小数点后只写一位)( )

#include <stdio.h> void main()

{double d; float f; long l; int i; i=f=l=d=20/3;

printf("%d %ld %f %f \n", i,l,f,d); }

A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0 4. 下列变量定义中合法的是( )

A) short _a=1-.le-1 B) double b=1+5e2.5 C) long d1=0xfdaL D) float 2_and=1-e-3;

5. 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )

A)k++ B)k+=1 C)++k D)k+1

6. 有以下程序,其中%u表示按无符号整数输出,输出结果是( )

#include <stdio.h> void main()

{unsigned short x=0xFFFF; /* x的初值为十六进制数*/ printf("%u\n",x); }

A)-1 B)65535 C)32767 D)0xFFFF 7. 有以下程序,输出结果是( )

#include <stdio.h> void main() {int i,j; for(i=1;i<4;i++)

{for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j); printf("\n"); } }

A) 1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 2*2=4 2*3=6 3*1=3 3*3=9 C) 1*1=1 D) 1*1=1 1*2=2 2*2=4 2*1=2 2*2=4

1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9 8. 在C语言中,函数返回值的类型最终取决于( )

A)函数定义时在函数首部所说明的函数类型 B)return语句中表达式值的类型 C)调用函数时主函数所传递的实参类型 D)函数定义时形参的类型 9. 设已有定义:float x;则对指针变量p进行定义且赋初值的语句中正确的是( )

A)float *p=1024 B)int *p=(float x) C)float p=&x D)float *P=&x; 10. 以下叙述中正确的是( )

A)break语句只能用于switch语句体中

B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环 C)break 语句只能用在循环体内和switch语句体内 D)在循环体内使用break语句和continue语句的作用相同 二、完成下列的程序填空(每空3分,共18分)

1.写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

#include <stdio.h> #include <string.h> void main()

{void inverse(char str[]); char str[100]; printf("input string:"); scanf("%s",str); inverse(str);

printf("inverse string:%s\n",str); }

void inverse(char str[]) {char t; int i,j;

for (i=0,j=strlen(str);i<(strlen(str)/2);i++,j--) } }

2.有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组。

#include <stdio.h> void main()

{int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number,end,i,j; printf("array a:\n"); for (i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); printf("insert data:"); scanf("%d",&number); end=a[9]; if (number>end) else

for (i=0;i<10;i++) {if (a[i]>number) { ;

a[i]=number; for (j=i+1;j<11;j++) {temp2=a[j]; a[j]=temp1; } break;

} } }

三、写出下列程序的运行结果(每小题9分,共36分) 1. 以下程序运行后的输出结果是( )

#include <stdio.h> void f(int *q) {int i=0;

for( ; i<5;i++)(*q)++; }

void main()

{int a[5]={1,2,3,4,5},i; f(a);

for(i=0;i<5;i++)printf("%d,",a[i]); }

2. 以下程序运行后的输出结果是( )

#include <stdio.h> f(int b[],int m,int n) {int i,s=0;

for(i=m;i<n;i=i+2) s=s+b[i]; return s; }

void main()

{int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d\n",x); }

3. 以下程序的输出结果是( )

#include <stdio.h> int f() {static int i=0; int s=1; s+=i; i++; return s; }

void main() {int i,a=0;

for(i=0;i<5;i++) a+=f(); printf("%d\n",a); }

4. 以下程序的输出结果是( )

#include <stdio.h> void main()

{char ch[2][5]={ "6937", "8254"},*p[2]; int i,j,s=0;

for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++)

for(j=0;p[i][j]> '\0';j+=2) s=10*s+p[i][j]- '0'; printf("%d\n",s); }

四、按要求编写下列程序(每小题13分,共26分)

o o

#include<stdio.h> #include<math.h> void main() { int m,n; }

int myfun(int x) { int k; }

编写程序,用函数的递归调用求x的n次方的值,其中n为正整数。

输入正整数m和n,如果m+n是质数,输出“Yes”,否则,输出“No”。要求定义并调用函数myfun(x)来判断x是否为质数,在下面空出的位置

完成程序,不能定义新的变量,可不用已定义的某些变量。

参考答案

一、单项选择题(每小题2分,共20分) AAACA BBADC

二、完成下列的程序填空(每空3分,共18分) 1. 2.

temp1=a[i]; 三、写出下列程序的运行结果(每小题9分,共36分) 1、2、3、15 4、四、按要求编写下列程序(每小题13分,共26分)

1.编写程序,用函数的递归调用求x的n次方的值,其中n为正整数。 #include <stdio.h> float mypow(float x,int n) {float m; if(n==1) m=x;

else m=x*mypow(x,n-1); return m; }

void main() {float x; int n;

scanf("%f,%d",&x,&n);

printf("%f的%d次方是%f",x,n,mypow(x,n)); }

2.输入正整数m和n,如果m+n是质数,输出“Yes”,否则, …… 此处隐藏:13365字,全部文档内容请下载后查看。喜欢就下载吧 ……

专接本计算机C语言程序设计模拟试题及答案(一).doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219