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.实现软硬件的转换
A.把源程序翻译成目标程序 B.进行数据处理
C.控制和管理系统资源的使用 D.实现软硬件的转换
[10].下面几种说法中哪个是正确的?_____________
A. else语句需与它前面的if语句配对使用;
B. else语句需与前面最接近它的if语句配对使用;
C. else语句需与前面最接近它的,且没有和其它else语句配对的if语句配对;
D. 以上都正确。
A. else语句需与它前面的if语句配对使用;
B. else语句需与前面最接近它的if语句配对使用;
C. else语句需与前面最接近它的,且没有和其它else语句配对的if语句配对;
D. 以上都正确。
[11].设整型变量a为5,使b不为2的表达式是___________
A. b=a/2
B. b=6-(--a)
C. b=a%2
D.b=a>3?2:1
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};
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,那么A 中第I个元素的地址为_______________
A. P+I*2
B. P+(I-1)*2
C. P+(I-1)
D. 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
A) 01100100 B) 01100101 C) 01100110 D) 01101000
[15].Windows中,对文件和文件夹的管理是通过 来实现的。
[A] 对话框 [B]剪贴板
[C] 资源管理器或我的电脑 [D]控制面板
二、判断
1. 微型计算机的核心部件是微处理器。 ( )
2. 在微机性能指标中,CPU的主频越高,其运算速度越快。 ( )
3. 组成微机系统总线的是译码、计数和控制总线。 ( )
4. 以二进制形式输出文件,则文件的内容与内存中完全一致 ( )
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"______);
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);}
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()
#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"); } }
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)
#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); }
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); }
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小时内删除。
发表评论