C语言开发基础(习题卷72)
第1部分:单项选择题,共70题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]在C#中,数组的下标从( )开始
A)1
B)-1
C)0
D)以上都不是
答案:C
解析:
2.[单选题]设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是( )。
A)scanf("%f",&x[6]);
B)scanf("%lf",*(x+6));
C)scanf("%lf",p+6);
D)scanf("%lf",p[6]);
答案:C
解析:
3.[单选题]读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是( )。
A)一个内存块的字节数
B)一个整型变量,代表待读取的数据的字节数
C)一个文件指针,指向待读取的文件
D)一个内存块的首地址,代表读入数据存放的地址
答案:D
解析:fread(void *buffer, size t size, size t count, FILE *stream);功能是从一个文件流中读数据,读取count个元素,每个元素size字节,如果调用成功返回count。buffer :用于接收数据的内存地址,大小至少是
size*count 字节;size :单个元素的大小,单位是字节;count :元素的个数,每个元素是size字节;stream :输入流。
公共基础知识-数据结构与算法
4.[单选题]数组元素下标的数据类型为( )。
A)整型常量、字符型常量或整型表达式
B)字符串常量
C)实型常量或实型表达式
字符串长度和占用内存字节
D)任何类型的表达式
答案:A
解析:数组下标的数据类型可以为整型、字符型常量,不可以是实型
5.[单选题]若用数组名作为函数的实参, 传递给形参的是().
A)数组的首地址
B)数组一个元素的值
C)数组中全部元素的值
D)数组元素的个数
答案:A
解析:
6.[单选题]25、字符串“ABCD”在内存占用的字节数是()。
A)4
B)6
C)1
D)5
答案:D
解析:
7.[单选题]有以下程序段: scanf("%d%d%d",&a,&b,&c); if(a>b)a=b; if(a>c)a=c; printf("%d\n",a); 该程序段的功能是( )。
A)输出a、b、c中的最小值
B)输出a、b、c中的最大值
C)输出a的原始值
D)输出a、b、c中值相等的数值
答案:A
解析:程序执行过程为:从键盘读入三个整型数据,依次赋给a,b,c,判断a>b,若成立,将较小的值b赋值给较大的值a,判断 a>c,若成立,将较小的值c赋值给较大的值a,实现了将从键盘读入的数据中最小值赋给a的功能,最后输出a,即输出最小 值。答案选择A选项。
8.[单选题]如果一个函数位于C 程序文件的上部,在该函
数体内说明语句后的复合语句中定义了一个变量,则
该变量__(  )____.
A)为全局变量,在本程序文件范围内有效
B)为局部变量,只在该函数内有效
C)为局部变量,只在该复合语句中有效
D)定义无效,为非法变量
答案:C
解析:
9.[单选题]要求以下程序的功能是计算:s=1+1/2+1/3+…+1/10。
Main()
{ int n; float s;
S=1.0;
For(n=10;n>1;n--)
S=s+1/n;
Printf("%6.4f\n",s);
}
程序运行后输出结果错误,导致错误结果的程序行是______。
A)s=1.0;
B)for(n=10;n>1;n--)
C)s=s+1/n;
D)printf("%6.4f\n",s);
答案:C
解析:
10.[单选题]下列正确描述字符数组的是( )
A)字符数组只能存放字符串,不能存放单个字符
B)字符串中可以含有‘\0’字符
C)C语言没有字符串类型变量,可用字符数组实现字符串操作
D)只能利用赋值语句实现字符数组的整体赋值
答案:C
解析:
11.[单选题]若有定义:float x=1.5,int a=1,b=3,c=2;.則正确的switch語句是( )
A)switch(x)
{case 1.0:printf(" *\n");
Case 2.0:printf("**\n");}
B)switch((int)x);
{case 1: printf(“* \n”);
Case 2.0 :printf(" * * \n");}
C)switch(a+b)
{case 1:printf(“* \n”);
Case 2+1:printf("* *\n");}
D)switch(a+b)
{case 1:printf("*\n");
Case c:printf("* *\n");}
答案:C
解析:
12.[单选题]以下关于预处理的叙述中不正确的是_____
A)C源程序中凡是以“#”号开始的控制行都是预处理命令行
B)预处理命令行必须位于源程序的开始部位
C)一条有效的预处理命令行必须单独占据一行
D)预处理命令是在正式编译之前先行被处理的
答案:B
解析:
13.[单选题]以下对C语言字符数组描述中,错误的是( )。
A)可以用strcmp()函数比较两个字符串的大小
B)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
C)存放在字符数组中的字符串,以'\0'作为该字符串结束标志
D)字符数组可以存放字符串或字符
答案:B
解析:对字符数组整体赋值的只有初始化才可以,赋值语句中不可以
14.[单选题]若程序中定义了以下函数:
Double myadd (double
A,double b)
{
return (a+b);
}
并将其放在调用语句之后,则在调用前应对该函数进行说明,以下选项中错误的说明是( )。
A)double myadd (double
A, b);
B)double myadd (double, double);
C)double myadd (double
B, double a);
D)double myadd (double x, double y);
答案:A
解析:
15.[单选题]定义长度为3的整型数组,并能适当初始化的写法是____。
A)int a[ ]={0};
B)int a={0,0,0};
C)int a[3]={0};
D)int a[3]={ };
答案:C
解析:
16.[单选题]在C#程序中,下述程序的运行结果是( )int c; c = 2; Console.WriteLine(c); Console.WriteLine (c++); Console.WriteLine (c);
A)2 2 2
B)2 3 3
C)2 2 3
D)3 4 4
答案:C
解析:
17.[单选题]4/3和3.0/2.0的结果分别为_______。
A)1,1
B)1.3,1
C)1,1.5
D)1.33,1.0
答案:C
解析:
18.[单选题]有以下程序段
intfun1(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+ b);}且doublew;执行语句w=fun2(1.1,2.0);后变量w的值是()。
A)0.0
B)5.0
C)5.21
D)5
答案:B
解析:
19.[单选题]若有以下语句:
Typedef struct S
{
Int g;
Char h;
}T;
以下叙述中正确的是______。
A)可用S定义结构体变量
B)可用T定义结构体变量
C)S是struct类型的变量
D)T是struct S类型的变量
答案:B
解析:
20.[单选题]设有定义和声明如下:
#define d 2
Int a=3;float b=3.14; char c='d';
下面表达式中有语法错误的是
A)a++
B)b++
C)c++
D)d++
答案:D
解析:
21.[单选题]以下程序其输出结果是().
#include <stdio.h>
void main()
{ int a=2 , b=5;
printf("a=%%d,b=%%d\n",a,b); }
A)a=%2,d=%5
B)a=2,b=5
C)a=%%d,b=%%5
D)a=%d,b=%d
答案:D
解析:
22.[单选题]设有 char s[3][4];,则数组 s 占用__ ___个字节。
A)12
B)4
C)3
D)7
答案:A
解析:
23.[单选题]下面能正确定义一维数组的选项是( )。
A)int num[ ];
B)const int N=100;
int num[N];
C)int num[0..100];
D)int N=100;
int num[N];
答案:B
解析:
24.[单选题]C语言的if语句嵌套时,if与else的配对关系是()
A)每个else总是与最外层的if配对
B)每个else总是与它上面的最近的并且尚未与其他else匹配的if配对
C)每个else总是与它上面的if配对
D)每个else与if的配对是任意的
答案:B
解析:
25.[单选题]若变量a,b,c已定义并已赋值,下列程序段没有语法错误的是( )
A)if(a==b) c=0
else c=1;
B)if a==b c=0;
else c=1;

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