C语言程序设计基础测试题
一、单选
[1] 下面叙述中错误的是____
    A. 复合语句中定义的函数只在该复合语句中有效
    B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式
C. 形式参数也是局部变量
D. 主函数中定义的变量在整个程序中都是有效的
[2]下列说法中正确的是____
    A.带参数的宏定义中的参数是没有类型的
    B.宏展开将占用程序的运行时间
    C.宏定义命令是C语言中的一种特殊语句
    D.使用#include命令包含的头文件必须以“.h"为后缀
[3.] 若函数的形参为一维数组,则下列说法中正确的是____
    A.调用函数时的对应实参必为数组名
    B.形参数组可以不指定大小
    C.形参数组的元素个数必须等于实参数组的元素个数
    D.形参数组的元素个数必须多于实参数组的元素个数
[4]. 系统的标准输出设备是____
    A.键盘
    B.硬盘
    C.内存
    D.显示器   
[5] 下面叙述中正确的是____
    A.全局变量在定义它的文件中的任何地方都是有效的
    B.全局变量在程序的全部执行过程中一直占用内存单元
C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式
D. 说明函数时必须明确其参数类型和返回类型
[6]. C程序的基本结构单位是____
    A.文件
    B.语句
    C.函数
D.表达式
 
[7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____
    A.aa数组元素的值分别是"abcd""ABCD"
    B.aa是指针变量,它指向含有两个数组元素的字符型一维数组
    C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
    D.aa数组的两个元素中各自存放了字符'a''A'的地址
 
[8]. 任何一个C语言的可执行程序都是从____开始执行的。
    A.程序中的第一个函数
    B.main( )函数的入口处
    C.程序中的第一条语句
[9].操作系统的作用是(   )。
A.把源程序翻译成目标程序         B.进行数据处理
C.控制和管理系统资源的使用       D.实现软硬件的转换
[10].下面几种说法中哪个是正确的?_____________
A. else语句需与它前面的if语句配对使用;
B. else语句需与前面最接近它的if语句配对使用;
C. else语句需与前面最接近它的,且没有和其它else语句配对的if语句配对;
D. 以上都正确。
[11].设整型变量a5,使b不为2的表达式是___________
A. b=a/2   
B. b=6-(--a)   
C. b=a%2 
D.b=a>3?2:1
[12].下列对数组操作不正确的语句是________
A. int a[5];                   
B.char b[ ]={‘h’,’e’,’l’,’l’,’o’};
C. int a[ ]={2,3,4,5};   
D. char b[3 ][ ]={1,2,3,4,5,6};
[13].设A为存放短整型的一维数组,如果A的首地址为P,那么中第I个元素的地址为_______________
A. P+I*2       
B. P+(I-1)*2       
C. P+(I-1)           
D. P+I
[14]. c语言中的逗号表达式十进制数100转换成二进制数是     
A) 01100100 B) 01100101 C) 01100110 D) 01101000
[15]Windows中,对文件和文件夹的管理是通过        来实现的。
[A] 对话框                                                [B]剪贴板
[C] 资源管理器或我的电脑              [D]控制面板
 二、判断
1. 微型计算机的核心部件是微处理器。                                  (  )
2. 在微机性能指标中,CPU的主频越高,其运算速度越快。              (  )
3. 组成微机系统总线的是译码、计数和控制总线。                      (  )
4. 以二进制形式输出文件,则文件的内容与内存中完全一致              (  )
      5. 定义:int a=123;若以ASCII文件的形式存放,则a将在磁盘上占三个字节 (  )
6. C语言中,switch后的括号内表达式的值可以是整型,字符型,枚举型    (  )
7. 函数的形式参数,在函数未被调用时就不被分配存储空间              (  )
8. 若函数的定义出现在主调函数之前,则可以不必再加说明              (  )
9. 若一个函数没有return语句,则什么值也不会返回                    (  )
10. 一般来说,函数的形参和实参的类型应该一致                        (  )
三、填空
1. 1.为解决某一特定问题而设计的指令序列称为         
2. 2.处于执行状态的进程,因时间片用完就转换为                    
3. 3.计算机硬件的五大基本构包括                                                         
4. 4.计算机所能辨认的最小信息单位是        
5. 5.计算机能直接识别和执行的语言是                    
6. 6.           程序是将计算机高级语言源程序翻译成目标程序的系统软件
7. 7.每条指令都必须具有的、能与其他指令相区别的、规定该指令执行功能的部分称为               
8. 8.目前Windows系统            操作系统。
9. 9.操作系统的主要作用是管理系统资源,这些资源包括              
10. 10.计算机可以处理信息有                                 
11. 11.C语言从源程序的书写到上机运行输出结果要经过______                  _________四个步骤。
12. 12.C语言的表达式与语句的区别在于___________________________________
13. 13.C语句_____________ (有、没有)输入、输出语句。
14. 14.结构化程序的编写有_______________________________三种程序结构。
15. 15.C语言中,变量的存储类别共有四种,即时___________________和寄存器型。表达式10/3*9%10/2的值是___________________
16. 16.设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是_________________
17. 17.设有“int x=1”,则“x>0?2*x+1: 0”表达式的值是______________________
18. 18.变量Y满足以下两条件中的任意一个:能被4整除,但不能被100整除;能被400
整除。请用逻辑表达式表示所给条件。 _________________________________________________________________
19. 19.逻辑运算符“&&|| !”中是短路运算符号是____________________ 
四、读程序
1.阅读函数,根据函数完成的主要功能,补充、完善主函数。
float av(float a[],int n)
{int i;float s;
  for (i=0,s=0;i<n;i++) s=s+a[i];
  return (s/n);                          }
main()
{float a[10];
_______________
for (i=0;_________)
  scanf("%f"______);
 printf("%f",av(a,10));          }
2.写出下列程序的输出结果:
main()
{int x,y,z;
x=y=z=-1;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
++y&&++x||++z;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x||y++&&z;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);}
3.下面程序的输出结果是什么?
#include "stdio.h"
main()
{ int x=3;
  switch(x)
   { case 1:
     case 2:printf("x<3\n");
     case 3:printf("x=3\n");
     case 4:
     case 5:printf("x>3\n");
     default:printf("x unknow\n");   }   }
4.根据源程序,写出相应的数学表达式
#include “stdio.h”
main()
{int x,y;
 scanf(“%d”,&x);
 if (x<0) y= -1;
 else if (x= = 0)
y=0;
else y=1;
printf(“x=%d,y=%d\n”,x,y);   }
5.分析下列程序所完成的功能。
main()
{int a,b,c,*pa=&a,*pb=&b,*pc=&c,*p;
scanf("%d,%d,%d",pa,pb,pc);
if (*pa>*pb)
 p=pa,pa=pb,pb=p;
if (*pa>*pc)
 p=pa,pa=pc,pc=p;
if (*pb>*pc)
 p=pb,pb=pc,pc=p;
printf("%d<=%d<=%d",*pa,*pb,*pc);    }
、编程:
  1.输入一单精度二维数组a[4][3],计算该二维数组中的最大元素的值及其所在位置(行、列),并输出计算结果。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。