2022年河北专接本C语言程序设计模拟试卷(1)

浏览次数:次 发布时间:2023-04-07

2022年河北专接本C语言程序设计模拟试卷(1)

湖南专升本问答

河北省普通高校专科接本科教育考试C 语言程序设计模拟试卷一

乐贞专升本线下培训课程

(考试时间:75 分钟)

(总分:150 分)

说明:请在答题纸的相应位置上作答,在其它位置上作答的无效。

一、单项选择题(本大题共 20 小题,每小题 2 分,共 40 分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)

1. 以下叙述不正确的是

A. 一个C源程序可由一个或多个函数组成 B. 一个C源程序必须包含一个main函数

C. C程序的基本组成单位是函数 D. 在C程序中,注释说明只能位于一条语句的后面

2. 在C语言中,假设所有变量均为整型,则表达式(a=3,b=7,a++,a+b)的值是

A.1O B.11 C.4 D. 13

3. 在C程序中,有语句“int k=7,x=12;”,则下列表达式的值为3的是

A. x%=k-k%5 B. x%=(k-k%5) C. x%=(k%=5) D. (x%=k)-(k%=5)

4. 在C语言中,非法的字符常量是

A. '\t' B. '\17' C. "\n" D. '\xaa'

5. 若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是

A. (exp==0)   B. (exp!=0)     C. (exp==1)    D. (exp!=1)

6. 在C语言中,有语句“int a,b; scanf("a=%d b=%d",&a,&b);”,下列输入方法能使a的值为2、b的值为3的是

A. a=2 b=3 B. a=2,b=3 C. 2,3 D. 2 3

7. 若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是

A. switch(x) B. switch((int)x);

{ case 1.0: printf("*\n"); { case 1.0:printf("*\n");

case 2.0: printf("**\n"); case 2.0: printf("**\n");

} }

C. switch(a+b) D. switch(a+b)

{ case 1: printf("*\n"); { case 1: printf("*\n");

case 2+1: printf("**\n"); } case c: printf("**\n");

} }

8. 以下程序段的输出结果是

int a[]={1,2,3,4,5,6},*p;

p=a;

*(p+3)+=2;

printf("%d,%d\n",*p,*(p+3));

A. 0,5 B. 1,5 C. 0,6 D. 1,6

9. C语言中函数返回值的类型由( )决定的。

A. return语句中的表达式类型 B. 调用该函数的主调函数的类型

C. 调用函数时临时决定 D. 定义函数时所指定的函数类型

10. 在C语言中,有以下程序段:

int a=10,b=O;

do{ b+=2;

a-=2+b; } while(a>=O);

程序段中循环体的执行次数是

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

11. 在C语言中,以下函数定义格式正确的是

A.double fun(int x,int y) B.fun(int x,y)

{ z=x+y; { int z;

retun z; return z;

} }

C.fun(x,y) D.double fun(int x,int y)

{ int x,y; { double z;

double z; z=x+y;

z=x+y; return z;

return z; }

}

12. 以下叙述中正确的是

A. 构成C程序的基本单位是函数 B. 可以在一个函数中定义另一个函数

C. main()函数必须放在其它函数之前 D. 所有被调用函数一定要在调用之前进行定义

13. 在C语言中,以下错误的定义语句是

A. int x[][3]={{0},{1},{1,2,3}};

B. int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C. int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D. int x[][3]={1,2,3,4};

14. 在C语言中,有以下程序段:

char str[]="\tab\n\012\\\"";

printf("%d",strlen(str));

其输出结果是

A.3 B. 4

C.7 D.13

15. 能正确表示a和b同时为正或同时为负的表达式是

A. (a>=0||b>=0)&&(a<0||b

C. (a+b>0)&&(a+b

16. 若int i=10;执行下列程序后,变量i的正确结果是

switch(i)

{ case 0:i+=1;

case 10:i+=1;

case 11:i+=1;

default:i+=1;

}

A. 10 B.11 C. 12 D. 13

17. 下列程序的输出结果是

#include

struct abc

{ int a,b,c; };

main()

{ struct abc s[2]={{1,2,3},{4,5,6}};

int t;

t=s[0].a+s[1].b%s[0].c;

printf("%d\n",t);

}

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

18. 在下面关于指针的说法中,错误的一条是

A. 变量的指针就是变量的地址

B. 可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量

C. 一个指针变量只能指向同一个类型的变量

D. 指针变量中只能存放地址

19. 以下程序运行后的输出结果是

#include

main()

{ int i=5,j=0;

do{j=j+(--i);}

while(i<2);

printf("%d\n",j);

}

A. 4 B. 5 C. 6 D. 9

20. 在下列叙述中,正确的一条是

A. puts和gets函数只能输入或输出一个字符串

B. 在C语言中,函数可以递归调用或递归定义

C. 用scanf函数输入数据时可以规定精度,例如scanf("%7.2f",&a);

D. 外部变量只限于本文件中使用

二、阅读程序题(共5小题,每小题6分,共30分)

1. 【程序】

#include

main()

{ int i,a[]={1,2,3,4,5,9,8,7,6,5};

void tran(int *);

tran(a);

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

printf("%3d",a[i]);

}

void tran(int *p)

{ int t,*d,*e;

d=p;e=p+9;

while(d

{ t=*d;*d=*e;*e=t;

d++;e--;

}

}

【运行结果】

2. 【程序】 请写出输入“24,16”时的输出结果

#include

main()

{ int a,b,num1,num2,temp;

scanf("%d,%d",&num1,&num2);

if(num1>num2)

{ temp=num1;

num1=num2;

num2=temp;

}

a=num1,b=num2;

while(b!=0)

{ temp=a%b;

a=b;

b=temp;

}

printf("%d,%d\n",a,num1*num2/a);

}

【运行结果】

3. 【程序】

#include

int fun(int n)

{ static int f=1;

f=f*n;

return f;

}

main()

{ int i;

for(i=1;i<=5;i++)

printf("%d\t",fun(i));

}

【运行结果】

4. 【程序】

#include

main()

{ int a=3,b=2,c=1;

c-=++b;

b*=a+c;

{ int b=5,c=12;

c/=b*2;

a-=c;

printf("%d,%d,%d,", a,b,c);

a+=--c;

}

printf("%d,%d,%d\n", a, b, c);

}

【运行结果】

5. 【程序】程序运行时,输入B

#include

main()

{ char grade;

scanf("%c",&grade);

switch(grade)

{ case'A':printf(">=85");

case'B':printf(">=75");

case'C':printf(">=60");

case'D':printf("<60");

default:printf("errror");

}

}

【运行结果】

三、程序填空题(共3题,每空5分,共35分)

1. 功能是:用递归的方法求菲波那契数列2,2,4,6,10,16,26,42,68,110,……的第10项

#include

long fib(int n)

{ if(n>=______________ )

return___________________ ;

else

return________________ ; }

main()

{ printf("%ld\n",fib(10)); }

2. 函数delchar的功能是:删除字符串s中的所有数字字符

#include

void delchar(char *s)

{ int i,n=0;

for(i=0; s[i]!='\0';i++)

if(___________________ )

s[____________ ]=s[i];

s[n]='\0'; }

3. 功能是:输出方阵中主对角线和、副对角线上元素的和sum1和sum2

#include

#define N 3

main()

{ int a[N][N],i,j,sum1,sum2;

sum1=sum2=0;

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

{ sum1+= _____________;

sum2+=____________ ; }

printf("%d,%d\n",sum1,sum2);}

四、编程题 (共3小题,每题15分 共45分)

1、打印以下图案:

**

****

******

********

**********

2、求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值全部输出。

3、编写函数int fun(char s[]),功能是:判断字符串是s否为回文,是回文返回1,否则返回0

河北省普通高校专科接本科教育考试C 语言程序设计模拟试卷二

(考试时间:75 分钟)

(总分:150 分)

说明:请在答题纸的相应位置上作答,在其它位置上作答的无效。

一、单项选择题(本大题共 20 小题,每小题 2 分,共 40 分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)

1. 下面四个选项中,均是不合法的用户标识符的选项是

A. A P_0 do B. b-a goto int C. float ia0 _A D. _123 temp int

2. 以下程序段输出的结果是

int a=-1,b=4,k;

k=(++a<0)&&!(b--<0);

printf("%d%d%d\n",a,b,k);

A. 041 B. 040 C. 030 D. 031

3. 设有说明char w;int x;float y;double z;,则表达式w*x+z-y的值的类型为

A. float B. char C. int D. double

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

int x=3;

do { printf("%3d",x-=2);} while(!(--x));

A. 1 B. 3 0 C. 1 -2 D. 死循环

5. 若有说明:int a[3][4],则对a数组元素的正确引用是

A. a[2][4] B. a[1,3] C. a[1+1][0] D. a(2)(1)

6. 以下程序段的输出结果是

char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k;

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

printf("%s\n",&w[k][k]);

A. ABCD B. FGH E. EFG D. ABCD

FGH KL JK EFG

KL

7. 以下叙述中不正确的是

A.在函数中,通过return语句获得返回值

B.在函数中,可以有多条return语句

C.在函数中,如果没有return语句则不带回返回值

D.在C语言中,调用函数不必在一条独立的语句中完成

8. 以下程序段的输出结果是

int x=2,y=-1,z=2;

if(x

if(y<0)z=0;

else z+=1;

printf("%d\n",z);

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

9. 下列程序段的输出结果是

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

printf("%d",*--p);

A. 非法 B. a[4]的地址 C. 3 D. 5

10. 以下错误的描述是

A. 不同的函数中可以使用相同的变量名

B. 在一个函数内部的复合语句中定义的变量可以在本函数范围内有效

C. 一个函数内部定义的变量只能在本函数范围内有效

D. 形式参数是局部变量

11. 设有:char str[]="Beijing";

则执行:printf("%d\n",strlen(strcpy(str,"China")));后输出的结果为

A. 5 B. 7 C. 12 D. 14

12. 在下列叙述中,正确的一条是

A. 以下语句是正确的:char c[]="ab";

B. 一维数组的定义可采用下列格式:int a(10);

C. 下面的语句定义了一个二维数组:float a[3,4];

D. 以下两个语句中的a[3][4]的含义相同:int a[3][4];a[3][4]=1;

13. 若有定义int (*pointer)[3],则标识符pointer是一个

A.指向整型变量的指针变量

B.指向有三个整型元素的一维数组的指针变量

C.指向函数的指针变量

D.指针数组名,有三个元素,每个元素均为一个指向整型变量的指针

14. 下列叙述中,正确的一条是

A.语句“goto 12;”是合法的

B.for(;;)语句相当于while(1)语句

C.if(表达式)语句中,表达式的类型只限于逻辑表达式

D.break语句可用于程序的任何地方,以终止程序的执行

15. 设变量定义如下,则对其中的成员num正确的应用是

struct student

{ int num;

char name[20];

float score;

} stud[10];

A.stud[1].num=10; B. student.stud.num=10;

C.struct.stud.num=10; D. struct student.num=10;

16. 以下程序的输出结果是

main()

{ int x=4;

fun(x);

printf("\n");

}

fun(int y)

{ if(y>0)fun(y-1);

printf("%d ", y);

}

A.0 1 2 3 4 5 B. 4 3 2 1

C.0 1 2 3 4 D. 5 4 3 2 1 0

17. 语句while(E);中的表达式E等价于

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

18. 下面程序的运行结果是

main()

{ char ch[7]={"65ab21"};

int i, s=0;

for(i=0;ch[i]>= '0'&&ch[i]<='9';i+=2)

s=10*s+ch[i]-'0';

printf("%d\n", s);

}

A. 12ba56 B. 6 C. 6521 D. 62

19. 定义如下变量和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句的输出结果是

for(i=0;i<3;i++)printf("%d",x[2-i] [i]);

A. 7 5 3 B. 7 4 1 C. 9 5 1 D. 9 6 3

20. 以下程序的输出的结果是

int func(int a,int b)

{ return(a+b); }

main()

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z);

printf(“%d\n”,r);

}

A.12 B. 13 C. 14 D. 15

二、阅读程序题(本题共5小题,每小题6分,共30分,请写出程序的运行结果)

1. 【程序】

#include

main()

{ int s[]={1,2,3,1,2,1,1,3},k;

int x[]={0,0,0,0};

for(k=0;k<8;k++)

switch(s[k])

{ case 1:

case 2:

case 3:x[s[k]]++;

}

for(k=0;k<4;k++)

printf("%d ",x[k]);

}

【运行结果】

2. 【程序】

#include

void reverse(int a[],int n)

{ int i,t;

for(i=0;i

{ t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

main()

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

reverse(a,6);

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

printf("%3d",a[i]);

}

【运行结果】

3. 【程序】

#include

int func(int a,int b)

{ static int m=0, i=2;

i+=m+1;

m=i+a+b;

return m;

}

main()

{ int k=4,m=1,p;

p=func(k,m);printf("%d,",p);

p=func(k,m);printf("%d\n",p);

}

【运行结果】

4. 【程序】

#include

#define ADD(x) x+x

main()

{ int m=1,n=2,k=3;

int sum=ADD(m+n)*k;

printf("sum=%d\n",sum);

}

【运行结果】

5. 【程序】

#include

struct STU { char name[10];int num;int score; }

main()

{ struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},

{"WangYin",20043,680},{"SunDan",20044,550},{"PengHua",20045,537}}, *p[5],*t;

int i,j;

for(i=0;i<5;i++) p[i]=&s[i];

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

for(j=i+1;j<5;j++)

if(p[i]->score>p[j]->score)

{ t=p[i];p[i]=p[j];p[j]=t; }

printf("%d%5d\n",s[0].score,p[0]->score);

}

【运行结果】

三、程序填空题(共3题,每空5分,共35分)

1、以下程序的功能是:输出三位正整数中能被13整除的数

#include

main()

{ int n;

for(_________ ;______________ ;n++)

if(n%13!=0) ____________;

else printf("%d\n",n);}

2、阅读以下程序并填空。以下程序的功能是:计算:image.png

#include

main()

{ int n;

float ;

scanf("%d",&n);

while(n>0)

{ s=s+___________ ;

n-- ; }

printf("Result is:%f\n",s); }

3、以下程序的功能是:输出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身例如:153是一水仙花数,因为:153=13+53+33

#include

main()

{ int i,a,b,c;

for(i=100;i<=999;i++)

{ a=____________ ;

b= _____________;

c= _____________;

if(a*a*a+b*b*b+c*c*c==i)

printf("%d\n",i);

}

}

四、编程题(共3小题,每题15分 共45分)

1、编写函数fun,其功能为计算数列“1,-2,3,-4,…,n-1,-n”的和。

要求:(1)利用宏定义将n定义为10;

(2)函数的调用和结果的输出由主函数main()处理,计算过程由fun函数处理;

(3)在main()中用printf()输出结果。

2、编写函数void fun(int a[],int n),功能是:将数组a中的前n个元素倒序存放。

3、编写程序,通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课程成绩。函数fun 的功能是将存放学生数据的结构体数组,按照姓名的字典序(从大到小)排序。

以上就是关于2022年河北专接本C语言程序设计模拟试卷(1)的全部内容了,如果你还有专升本相关的疑惑(如专升本报名、考试动态、院校招生简章、统考动态、湖南专升本院校、历年真题、考试大纲、专升本等相关信息),可以在文章下方留下你的联系方式,老师会第一时间联系到你,为你答疑解惑哦!


湖南专升本最新资料领取

部分内容来源于网络转载、学生投稿,如有侵权或对本站有任何意见、建议或者投诉,请联系邮箱(1296178999@qq.com)反馈。 未经本站授权,不得转载、摘编、复制或者建立镜像, 如有违反,本站将追究法律责任!


本文标签: 统招专升本全日制专升本统招

上一篇:2022年河北专升本计算机全真模拟二                  下一篇:2022年河北专接本C语言程序设计模拟试卷(2)

湖南3+2 统招专升本

一键查询