C语言程序设计技术水平考试复习题纲Word格式.docx
- 文档编号:22597570
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:26
- 大小:30.75KB
C语言程序设计技术水平考试复习题纲Word格式.docx
《C语言程序设计技术水平考试复习题纲Word格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计技术水平考试复习题纲Word格式.docx(26页珍藏版)》请在冰豆网上搜索。
z=-5;
printf("
%d%d%d"
x,y,z);
A)3,无用数据,–5B)5,无用数据,3
C)3,无用数据,无用数据D)无用数据,无用数据,无用数据
●在下面的代码段中,语句x=1会执行()次
for(j=1;
j<
=n;
j++)
for(k=1;
k<
=n;
k++)
x=1;
A)nB)n(n+1)C)n2D)n+n
●以下程序段所做工作是()
do{
numb);
}while(numb<
1||numb>
10);
A)读取[0,11]范围之内的一个整数
B)读取[-1,10]范围之内的一个整数
C)读取[1,10]范围之内的一个整数
D)以上三项皆错
●在以下四个运算符中,优先级最低的是()
A)*B)+C)/D)=
●如果n=2,以下程序输出结果是()
switch(n)
case
(1):
printf("
Youhavechosentoadddata\n"
);
break;
case
(2):
Youhavechosentodeletedata\n"
case(3):
Youhavechosentoviewdata\n"
case(4):
Youhavechosentoprintdata\n"
default:
Invalidinput\n"
A)Youhavechosentoadddata
B)Youhavechosentodeletedata
C)Youhavechosentodeletedata
Invalidinput
D)Youhavechosentodeletedata
Youhavechosentoviewdata
●假设charstr[10]=”China\0”;
执行strlen(str)后的结果是()
A)5B)6C)7D)9
●运行以下程序的输出结果是()
intn[5]={0},i,k=2;
for(i=0;
i<
k;
i++)
n[i]=n[i]+1;
printf(“%d\n”,n[k]);
}
A)不确定B)2C)1D)0
●对于定义为floatp[3][3];
的数组,以下用法错误的是()
A)p[0][0]B)p[1][3]C)p[1][1]D)p[1][2]
●以下程序的输出结果是()
inta,b;
voidfun()
{a=100;
b=200;
inta=5,b=7;
fun();
printf(“%d%d\n”,a,b);
A)100200B)57C)200100D)75
●()可以是结构体的一部分
A)字符串常量B)整数变量C)整数常量D)字符常量
●函数原型声明应该放置在()
A)在main()函数之中
B)作为main()函数中的第一个语句
C)恰好在函数本身的定义之前
D)在其他所有函数之前(包括main()函数)
●在调用一个函数时,主调函数将通过()的变量列表传递给被调函数
A)形式参数B)实际参数C)寄存器变量D)局部变量
●全局变量的作用域限于()
A)整个程序包括的所有文件
B)从定义该变量的语句所在的函数
C)本程序文件
D)从定义该变量的位置开始到本程序结束
●当n=-4时,以下代码段将会发生什么情况()
intfactorial(intn)
if(n==0)
return1;
else
returnfactorial(n-1)*n;
A)递归函数返回0
B)递归函数进入无限循环
C)递归函数返回-4的阶乘
●递归调用中的函数状态将在()中得到保持
A)堆栈B)堆(Heap)C)树D)以上皆错
●以下程序的输出结果是()
voidfun(intx,inty,intz)
z=x*x+y*y;
{
inta=31;
fun(5,2,a);
printf(“%d”,a);
A)0B)29C)31D)无定值
●对于声明inta[100]和intj,表达式*(a+j)等价于引用()
A)a[j-1]B)a[j+1]C)aD)a[j]
●以下循环体的执行次数是()
{inti,j;
for(i=0,j=1;
=j+1;
i+=2,j--)
%d\n"
i);
A)2
B)3
C)0
D)1
●有以下程序
#include<
voidmain()
inti,n=0;
for(i=2;
i<
5;
i++)
do
{
if(i%3)continue;
n++;
}while(!
i);
n=%d\n"
n);
则程序执行后的输出结果是()
A)n=4B)n=2C)n=3D)n=5
●以读写方式打开一个已有的文本文件file1,下面fopen函数正确的调用方式是()
A)FILE*fp;
fp=fopen(“file1”,”r”);
B)FILE*fp;
fp=fopen(“file1”,”r+”);
C)FILE*fp;
fp=fopen(“file1”,”rb”);
D)FILE*fp;
fp=fopen(“file1”,”rb+”);
●当intb=2;
时,表达式(b<
<
2)/(b>
>
1)的值是()
A)0B)2C)4D)8
●C语言规定:
在一个源程序中,main()函数的位置()。
A、必须在最开始B、必须在系统调用的库函数的后面
C、可以任意D、必须在最后
●若x、i、j和k都是int型变量,那么执行表达式x=(i=4,j=16,k=32);
后,x的值为()。
A、4B、16C、32D、52
●在C语言程序中()
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用不可以嵌套
D、函数的定义和函数的调用均可以嵌套
●sizeof(double)的返回值类型是()。
A、双精度型B、单精度型
C、整型D、不合法
●puts函数可以向终端输出一个()
A、整型变量表达式值B、实型变量值
C、字符或字符型变量值D、字符串
●已知i,j,k为int型变量,若从键盘输入:
1,2,3<
回车>
,使i的值为1、j
的值为2、k的值为3,以下选项中正确的输入语句是()。
A、scanf("
%2d%2d%2d"
&
i,&
j,&
k);
B、scanf("
C、scanf("
%d,%d,%d"
D、scanf("
i=%d,j=%d,k=%d"
●判断char型变量ch是否为小写字母的正确表达式是()。
A、’a’<
=ch<
=’z’B、(ch>
=’a’)&
(ch<
=’z’)
C、(ch>
=’z’)D、(ch>
=’a’)AND(ch<
●请阅读以下程序:
{inta=1,b=2,c=3;
if(c=a+b)
printf(“***\n”);
else
printf(“$$$\n”);
A.有语法错误,不能通过编译B.输出***
C.输出$$$D.可以通过编译,但不能通过连接
●语句while(!
E);
中的表达式!
E等价于()。
A、E==0B、E!
=1C、E!
=0D、E==1
●若i为整型变量,则以下循环执行次数是()
for(i=2;
i==0;
)printf(“%d”,i--);
A、无限次B、0次C、1次D、2次
●以下程序的运行结果是()
{intk=5,a=3,b=2,c=1;
%d\n"
k<
a?
k:
(c<
b?
c:
a));
A、5B、3C、2D、1
●若有说明:
inta[3][4];
则对a数组元素的非法引用是()。
A、a[0][2*1]B、a[1][3]C、a[4-2][0]D、a[0][4]
●对两个数组a和b进行如下初始化:
chara[]=”ABCDEF”;
charb[]={‘A’,’B’,’C’,’D’,’E’,’F’};
则以下叙述正确的是()。
A、a与b数组完全相同B、a和b中部存放字符串
C、a与b长度相同D、a数组比b数组长度长
●下面程序运行的结果是()。
{charch[7]=”65ab21”;
inti,s=0;
for(i=0;
ch[i]>
=’0’&
ch[i]<
=’9’;
i+=2)
s=10*s+ch[i]-‘0’;
printf(“%d\n”,s);
A、2ba56B、6521C、6D、62
●C语言程序编译时,程序中的注释部分将()。
A、参加编译,并会出现在目标程序中
B、参加编译,但不会出现在目标程序中
C、不参加编译,也不会出现在目标程序中
D、不参加编译,但会出现在目标程序中
●以下程序的输出结果是()。
inta=0,i;
for(i=1;
{
switch(i)
{
case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
printf(“%d”,a);
A、31B、13C、10D、20
●以下正确的说法是()。
在C语言中A、实参和与其对应的形参各占用独立的存储单元
B、实参和与其对应的形参共占用一个存储单元
C、只有当实参和与其对应的形参同名时才共占用存储单元
D、形参是虚拟的,不占用存储单元
●关于C语言数组的正确描述是()
A、数组的大小是固定的,数组中元素的类型可以不同
B、数组的大小是可变的,数组中元素的类型必须相同
C、数组的大小是固定的,数组中元素的类型必须相同
D、数组的大小是可变的,数组中元素的类型可以不同
●下列关于break语句的叙述中,不正确的是()。
A、break语句可用在循环体中,它将使流程跳出本层循环体
B、break语句可用在switch语句中,它将使流程跳出当前switch语句
C、break语句可用在if语句中,它将使流程跳出当前if语句
D、break语句在一层循环体中可以出现多次
●下列函数声明中,正确的是()。
A、voidmyfun(inta,b);
B、voidmyfun(inta,intb);
C、voidmyfun(inta;
intb);
D、voidmyfun(intaintb);
●若要交换int型变量x和y的值,正确的语句是()。
A、x=y;
B、inttemp=x;
x=y;
y=temp;
C、y=x;
D、inttemp=x;
y=x;
●已知函数原型为voidfun(int*),则下列选项中,正确的函数调用是()。
A、doublex=3.45;
fun(x);
B、inta=15;
fun(a*3.14);
C、intb=100;
fun(&
b);
D、fun(256);
●若有宏定义:
#defineMOD(x,y)x%y,则执行以下语句后的输出结果为()。
intz,a=15,b=l00;
z=MOD(b,a);
b%a
printf(“%d\n”,z);
A、11B、10C、6D、宏定义不合法
●程序中通过调用库函数中字符串函数来实现字符串操作,需通过()命令将string.h文件包含到该程序中。
A、#defineB、#includeC、#ifD、#iend
●变量指针的含义是指该变量的()。
A、值B、地址C、名D、一个标志
●若已定义inta=5;
下面对
(1),
(2)两个语句的正确解释是()。
(1)int*p=&
a;
(2)*p=a;
A、语句
(1)和
(2)中的*p含义相同,都表示绐指针变量p赋值
B、
(1)和
(2)语句的执行结果,都是把变量a的地址值赋给指针变量p
C、
(1)在对p进行说明的同时进行初始化,使p指向a
(2)将变量a的值赋给指针变量p
D、
(1)在对p进行说明的同时进行初始化,使p指向a
(2)将变量a的值赋于*p
●若有定义:
inta[4][3],则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为()。
A、*(*(a+i)+j)B、(a+i)[j]C、*(a+i+j)D、*(a+i)+j
●若有以下说明和语句:
structstudent
intage;
intnum;
}std,*p;
p=&
std;
则以下对结构体变量std中成员age的引用方式中,不正确的是()。
A、std.ageB、p->
ageC、(*p).ageD、*p.age
●函数调用语句:
fseek(fp,-20L,2);
的含义是()。
A、将文件位置指针移到距离文件头20个字节处
B、将文件位置指针从当前位置向后移动20个字节
C、将文件位置指针从文件末尾处向后退20个子节
D、将文件位置指针移到离当前位置20个字节处
●字符串”VB\tVC\tJAVA\n”的长度为()。
A、14B、8C、11D、12
●若已知inta=10,b=20;
则表达式!
a<
b的值是()。
A、10B、20C、0D、1
●若有代数式
则错误的C语言表达式是( )
A、a/b/c*eB、a*e/b*c
C、a*e/b/cD、a*e/c/b
●在C语言中定义某内部变量时,如省略了存贮类型符,则系统将其默认为()
A、寄存器型B、自动型
C、静态型D、非法
●栈的插入与删除操作是在()进行的。
A、栈顶B、栈底C、任意位置D、指定位置
●设int型变量n的值为2,执行语句:
n+=n*n;
后,n的值为( )。
A、2B、4C、6D、16
●假设已定义x和y为double类型,则表达式x=1,y=x+5/2的值是()
A、1B、3C、3.0D、3.5
●当调用函数时,实参是一个数组名,则向被调用函数传送的是( )
A、数组的长度B、数组的首地址
C、数组每一个元素的地址D、数组每个元素中的值
●以下数组定义中不正确的是()
A、inta[2][3];
B、intb[][3]={0,1,2,3};
inta[]={1,2,3,4}
C、intc[100][100]={0};
D、intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
●下面有关for循环的正确描述是()
A、在for循环中,它只能用于循环次数已经确定的情况
B、在for循环中,要先执行循环体语句,后判断表达式决定下次循环
C、在for循环中,不能用break语句跳出循环体
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
●下列表达式中值为false(假)的是()。
A、1<
7B、!
C、11&
0x01D、!
●以下函数调用语句中实参的个数()。
excc((v1+v2),(v3+v4+v5),v6);
A、3B、4C、5D、6
●以下程序段()。
x=-1;
do
x=x*x;
}while(x);
A、是死循环B、循环执行一次C、循环执行二次D、有语法错误
●已知字母a的ASCII码为十进制97,且设ch为字符变量,则表达式ch=‘a’+’8’-’3’的值()
A、103B、CC、fD、F
●下面程序的运行结果是()
{inti,j,x=0;
for(i=0;
2;
{x++;
for(j=0;
j<
=3;
{if(j%2)continue;
x++;
printf(“x=%d\n”,x);
A、x=4B、x=8C、x=6D、x=12
●能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是()
A、a>
=10ora<
=0B、a>
=0|a<
=10
C、a>
=10&
=0D、a>
=10‖a<
=0
●定义如下变量和数组:
inti;
intx[3][3]={{9,8,7},{6,5,4},{3,2,1}};
则下面语句的输出结果是(
for(i=0;
3;
i++)printf(“%d”,x[i][2-i]);
A、753B、741C、951D、963
●在一个被调函数中,关于return语句使用的中,错误的是()
A、被调函数中可以没有return语句
B、被调函数中可以使用多个return语句
C、被调函数中,如果有返回值,就一定要有return语句
D、被调函数中,一句return语句可以返回多个值给主调函数
●C语言printf()函数中的控制符”\n”的作用是()
A、换行B、回车C、换页D、退格
●C语言中运算对象必须是整型的运算符是()
A、%=B、/C、=D、〈=
●有如下程序:
main()
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
break;
case1:
a++;
case2:
printf(“a=%d,b=%d\n”,a,b);
}
该程序的输出结果是()
A、a=2,b=1B、a=1,b=0
C、a=0,b=1D、a=2,b=2
●对长度为n的线性表进行顺序查找,平均的比较次数为()
A、log2nB、n/2C、(n+1)/2D、n+1
●判断字符串s1是否大于s2,应当使用()。
A、if(s1>
s2)B.if(strcmp(s1,s2))
C.if(strcmp(s1,s2)>
0)D.if(strcmp(s2,s1)>
0)
●若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()
A、intp=&
x;
B、int*p=x;
C、int*p=&
D、*p=*x;
●下列关于#include“test.h”与#include〈test.h〉的叙述中,正确的是()。
A、#include“test.h”仅仅搜索当前目录
B、#include<
test.h>
仅仅搜索源程序所在目录
C、#include“test.h”直接按系统设定的标准方式搜索目录
D、#include“test.h”先在源程序所在目录搜索,再按系统设定的标准方式搜索
●设有以下说明语句
structstu
{inta;
floatb;
}stutype;
则下面的叙述不正确的是()
A、struct是结构体类型的关键字
B、stuctstu是用户定义
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 技术水平 考试 复习题