【c语言基础题】— —第七版,可当作日常练习和期末复习,有奇效哟!

简介: 【c语言基础题】— —第七版,可当作日常练习和期末复习,有奇效哟!

🎯问题:

一. 单选题(共30题,100分)

1. (单选题)【选择题】若有以下程序

#include<stdio.h>


int f(int a[],int n)


{


   if(n>1)


   {


       int t;


       t=f(a,n-1);


       return t>a[n-1]?t:a[n-1];


   }


else


   return a[0];


}


main()


{


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


   printf("%d\n",f(a,9));


}


则程序的输出结果是( )


A. 1

B. 9

C. 8

D. 5

2. (单选题)【选择题】有以下函数:

#include <stdio.h>


void func(int n)


{


   int i;


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


       printf("*");


   printf("#");


}


main()


{


   func(3);


   printf("????");


   func(4);


   printf("\n");


}


程序运行后的输出结果是( )


A. ****#????***#

B. ****#????*****#

C. **#????*****#

D. ***#????*****#

3. (单选题)【选择题】有以下程序:

#include <stdio.h>


int f(int x);


main()


{


   int a,b=0;


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


   {


       b=b+f(a);


       putchar('A'+b);


   }


}


int f(int x)


{


   return x*x+1;


}


程序运行后的输出结果是( )


A. ABE

B. BDI

C. BCF

D. BCD

4. (单选题)【选择题】有以下程序:

#include<stdio.h>

void fac2(int);


void fac1(int n)

{


   printf("*");


   if(n>0)


       fac2(n-1);


}


void fac2(int n)

{


   printf("#");


   if(n>0)


       fac2(--n);


}


main()


{


   fac1(3);


}

程序的运行结果是( )


A. **##f

B. *##*

C. *#*#

D. *###

5. (单选题)【选择题】C语言程序中, 若函数无返回值, 则应该对函数说明的类型是( )

A. int

B. void

C. char

D. double

6. (单选题)【选择题】

以下程序中函数f的功能是: 当flag为1时, 进行由小到大排序; 当flag为0时, 进行由大到小排序。


#include <stdio.h>


void f(int b[],int n,int flag)


{


   int i,j,t;


   for(i=0;i<n-1;i++)


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


           if(flag?b[i]>b[j]:b[i]<b[j])


           {


               t=b[i];


               b[i]=b[j];


               b[j]=t;


           }


}


main()


{


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


   f(&a[2],5,0);


   f(a,5,1);


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


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


}


程序运行后的输出结果是( )


A. 5,4,3,2,1,6,7,8,9,10,

B. 1,2,3,4,5,6,7,8,9,10,

C. 3,4,5,6,7,2,1,8,9,10,

D. 10,9,8,7,6,5,4,3,2,1,

7. (单选题)【选择题】以下叙述中错误的是( )

A. 改变函数形参的值, 不会改变对应实参的值

B. 可以给指针变量赋一个整数作为地址值

C. 函数可以返回地址值

D. 当在程序的开头包含头文件stdio.h时, 可以给指针变量赋NULL

8. (单选题)【选择题】有以下程序

#include<stdio.h>


void fun(int n,int *s)


{


   int f;


   if(n == 1)


       *s = n+ 1;


   else


   {


       fun(n-1,&f);


       *s = f;


   }


}


main()


{


   int x =0;


   fun(4,&x);


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


}


程序运行后的输出结果是( )


A. 4

B. 2

C. 1

D. 3

9. (单选题)【选择题】设有以下函数:

void fun(int n,char* s){……}


则下面对函数指针的定义和赋值均是正确的是( )


A. void (* pf)(int,char);pf=&fun;

B. void * pf(); *pf=fun;

C. void (* pf)();pf=fun;

D. void *pf();pf=fun;

10. (单选题)【选择题】有以下程序:

#include<stdio.h>

void fun(int a[],int n)


{


   int i,t;


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


   {


       t=a[i];


       a[i]=a[n-1-i];


       a[n-1-i]=t;


   }


}


main()


{


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


   fun(k,5);


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


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


   printf("\n");


}

程序运行的结果是( )


A. 321678

B. 876543

C. 345678

D. 1098765

11. (单选题)【选择题】有以下程序:

#include <stdio.h>


int fun(int n)


{


   if(n==1)


       return1;


   else


       return(n+fun(n-1));


}


main()


{


   int x;


   scanf("%d",&x);


   x=fun(x);


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


}


执行程序时, 给变量x输入10, 程序的输出结果是( )


A. 54

B. 45

C. 65

D. 55

12. (单选题)【选择题】有以下程序

#include <stdio.h>


int f(int n)


{


   int t=0,a=5;


   if(n/2)


   {


       int a=6;


       t+=a++;


    }


   else


   {


       int a=7;


       t+=a++;


   }


   return t+a++;


}


main()


{


   int s=0,i=0;


   for(;i<2;i++)


       s+=f(i);


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


}


程序运行后的输出结果是( )


A. 32

B. 36

C. 24

D. 28

13. (单选题)【选择题】有以下程序

#include <stdio.h>


int fun1(double a)


{


   return (int)(a*= a);


}


int fun2(double x,double y)


{


   double a = 0,b = 0;


   a = fun1(x);


   b =fun1(y);


   return (int)(a+b);


}


main()


{


   double w;


   w =fun2(1.1,2.0);


   printf("%4.2f",w);


}


程序执行后输出结果是( )


A. 0.0

B. 5.00

C. 5.21

D. 5

14. (单选题)【选择题】以下叙述正确的是( )

A. C语言中除了main函数, 其他函数不可作为单独文件形式存在

B. C语言程序是由过程和函数组成的

C. C语言函数不可以单独编译

D. C语言函数可以嵌套调用, 例如: fun(fun(x))

15. (单选题)【选择题】以下叙述中正确的是( )

A. 用户自己定义的函数只能调用库函数

B. 不同函数的形式参数不能使用相同名称的标识符

C. 实用的C语言源程序总是由一个或多个函数组成

D. 在C语言的函数内部, 可以定义局部嵌套函数

16. (单选题)【选择题】有以下程序:

#include <stdio.h>


double f(double x);


main()


{


   double a=0;


   int i;


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


       a+=f((double)i);


   printf("%5.0f\n",a);


}


double f(double x)


{


   return x*x+1;


}


程序运行后的输出结果是( )


A. 500

B. 503

C. 1404

D. 401

17. (单选题)【选择题】以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。

#define MIN -2147483647


int fingmax (int x[],int n)


{


   int i,max;


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


   {


       max=MIN;


       if(max<x[i])


           max=x[i];


   }


   return max;


}


造成错误的原因是( )


A. 赋值语句max=MIN;中, 不应给max赋MIN值

B. 语句if(max<x[i]) max=x[i];中判断条件设置错误

C. 赋值语句max=MIN;放错了位置

D. 定义语句int i,max;中max未赋初值

18. (单选题)【选择题】设有定义语句int(*f)(int);, 则以下叙述中正确的( )

A. f是基类型为int的指针变量

B. f是指向函数的指针变量, 该函数具有一个int类型的形参

C. f是函数名, 该函数的返回值是基类型为int类型的地址

D. f是指向int类型一维数组的指针变量

19. (单选题)【选择题】若函数调用时的实参为变量时, 以下关于函数形参和实参的叙述中正确的是( )

A. 同名的实参和形参占同一存储单元

B. 函数的形参和实参分别占用不同的存储单元

C. 形参只是形式上的存在, 不占用具体存储单元

D. 函数的实参和其对应的形参共占同一存储单元

20. (单选题)【选择题】有以下函数:

#include <stdio.h>


void exch(int t[])


{


   t[0] = t[5];


}


main()


{


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


   while(i <=4)


   {


       exch(&x[i]);


       i++;


   }


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


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


   printf("\n");


}


程序运行后的输出结果是( )


A. 6 7 8 9 10

B. 1 3 5 7 9

C. 2 4 6 8 10

D. 1 2 3 4 5

21. (单选题)【选择题】若有以下程序

#include <stdio.h>


void fun(int a[],int n)


{


   int t,i,j;


   for(i=1;i<n;i+=2)


       for(j=i+2;j<n;j+=2)


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


           {


               t=a[i];


               a[i]=a[j];


               a[j]=t;


           }


}


main()


{


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


   fun(c,10);


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


       printf("%d,",c[i]);


   printf("\n");


}


则程序的输出结果是( )


A. 10,1,8,3,6,5,4,7,2,9,

B. 1,10,3,8,5,6,7,4,9,2,

C. 2,9,4,7,6,5,8,3,10,1,

D. 10,9,8,7,6,5,4,3,2,1,

22. (单选题)【选择题】有以下程序

#include <stdio.h>

void f(int b[])


{


   int i;


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


       b[i]*=2;


}


main()


{


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


   f(a);


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


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


}

程序运行后的输出结果是( )


A. 1,2,6,8,10,12,7,8,9,10,

B. 1,2,6,8,10,12,14,16,9,10,

C. 1,2,3,4,10,12,14,16,9,10,

D. 1,2,3,4,5,6,7,8,9,10,

23. (单选题)【选择题】若有以下函数首部

int fun(double x[10],int*n)

则下面针对此函数的函数声明语句中正确的是( )

A. int fun(double x,int*n);

B. int fun(double*,int*);

C. int fun(double,int);

D. int fun(double *x,int n);

24. (单选题)【选择题】有以下程序:

#include<stdio.h>


int f(int x[],int n)


{


   if(n>1)


   {


       f(&x[1],n-1);


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


   }


   else


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


}


main()


{


   int z[6]={1,2,3,4,5,6};


   f(z,6);


   printf("\n");


}


程序的运行结果是( )


A. 6,5,4,3,2,1,

B. 1,2,3,4,5,6,

C. 1,1,

D. 1,1,1,1,1,1,

25. (单选题)【选择题】有以下程序

#include<stdio.h>


int fun(int x)


{


   int p;


   if(x==0||x==1)


       return (3);


   p=x-fun(x-2);


   return p;


}


main()


{


   printf("%d\n",fun(7));


}


执行后的输出结果是( )


A. 7

B. 2

C. 3

D. 0

26. (单选题)【选择题】以下关于函数的叙述中正确的是( )

A. 函数形参的类型与返回值的类型无关

B. 函数必须要有形参

C. 函数必须要有返回值

D. 函数调用必须传递实参

27. (单选题)【选择题】有如下程序:

#include<stdio.h>


void get_put()


{


   char ch;


   ch=getchar();


   if(ch!='\n')


       get_put();


   putchar(ch);


}


main()


{


   get_put();


   printf("\n");


}


程序运行时, 输入1234<回车>, 则输出结果是( )


A. 1111

B. 4444

C. 4321

D. 1234

28. (单选题)【选择题】在源程序的开始处加上“#include<stdio.h>”进行文件引用的原因, 以下叙述正确的是( )

A. stdio.h文件中包含标准输入输出函数的函数说明, 通过引用此文件以便能正确使用printf、 scanf等函数

B. 将stdio.h中标准输入输出函数的二进制代码插入到引用处, 以便进行编译链接

C. 将stdio.h中标准输入输出函数链接到编译生成的可执行文件中, 以便能正确运行

D. 将stdio.h中标准输入输出函数的源程序插入到引用处, 以便进行编译链接

29. (单选题)【选择题】有如下程序:

#include <stdio.h>


int sum(int a,int b)


{


    return a+b-2;


}


main()


{


   int i;


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


       printf("%d",sum(i,3));


   printf("\n");


}


程序运行后的输出结果是( )


A. 12345

B. 45678

C. 01234

D. 54321

30. (单选题)【选择题】有以下程序:

#include <stdio.h>


void fun(int p)


{


   int d=2;


   p=d++;


   printf("%d",p);


}


main()


{


   int a=1;


   fun(a);


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


}


程序运行后的输出结果是( )


A. 12

B. 22

C. 32

D. 21


🎯答案 :

1-5:BBBDB

6-10:CBBAA

11-15:DCBDC

16-20:BCBBA

21-25:AABAB

16-30:ACAAD

相关文章
|
28天前
|
C语言
大学生期末C语言实验(学生成绩和鞍点)
大学生期末C语言实验(学生成绩和鞍点)
126 0
大学生期末C语言实验(学生成绩和鞍点)
|
6月前
|
算法 C语言 容器
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣(上)
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣
46 0
|
4月前
|
存储 C语言 C++
PTA—C语言期末复习(选择题)
PTA—C语言期末复习(选择题)
|
5月前
|
C语言
C语言练习代码第一篇
C语言练习代码第一篇
|
4月前
|
C语言
PTA—C语言期末复习(判断题)
PTA—C语言期末复习(判断题)
|
5月前
|
C语言
|
6月前
|
存储 前端开发 算法
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣(下)
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣
20 0
|
5月前
|
编译器 C语言
|
5月前
|
C语言
|
6月前
|
存储 C语言
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣(中)
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣
37 0