C语言程序设计技术水平考试复习题纲.docx

上传人:b****7 文档编号:10307064 上传时间:2023-02-10 格式:DOCX 页数:26 大小:30.75KB
下载 相关 举报
C语言程序设计技术水平考试复习题纲.docx_第1页
第1页 / 共26页
C语言程序设计技术水平考试复习题纲.docx_第2页
第2页 / 共26页
C语言程序设计技术水平考试复习题纲.docx_第3页
第3页 / 共26页
C语言程序设计技术水平考试复习题纲.docx_第4页
第4页 / 共26页
C语言程序设计技术水平考试复习题纲.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C语言程序设计技术水平考试复习题纲.docx

《C语言程序设计技术水平考试复习题纲.docx》由会员分享,可在线阅读,更多相关《C语言程序设计技术水平考试复习题纲.docx(26页珍藏版)》请在冰豆网上搜索。

C语言程序设计技术水平考试复习题纲.docx

C语言程序设计技术水平考试复习题纲

C语言程序设计技术水平考试复习题纲

一、选择题

●C语言的编译系统对宏命令的处理是()

A)在程序运行时进行的

B)在程序连接时进行的

C)和C程序中的其它语句同时进行编译的

D)在对源程序中其它语句正式编译之前进行的

●下列表达式中值为false(假)的是()

A)1<3&&5<7B)!

(5<10)

C)11&&0x01D)!

(4<7)||(2<8)

●如果x是一个整型变量,那么以下答案()是赋值x=1/3的结果

A)0.33

B)0.30

C)0

D)未定义的无用数据

●设intx,*p;下列表达式中正确的是()

A)5.0%2B)x+1=5C)&pD)&(x+1)

●对以下说明,数值为9的表达式是()

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

A)*p+9B)*(P+8)C)*p+=9D)P+8

●以下程序执行后的输出结果是()

voidmain()

{

intk=2,i=2,m;

m=(k+=i*=k);

printf(%d,%d\n”,m,i);

}

A)8,6B)8,3C)6,4D)7,4

●以下程序当输入3时,输出的结果是()

#include

voidmain()

{

intx,y,z;

scanf("%d",&x);

if(x>5)

{

y=100;

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{

scanf("%d",&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):

printf("Youhavechosentodeletedata\n");

case(3):

printf("Youhavechosentoviewdata\n");

break;

case(4):

printf("Youhavechosentoprintdata\n");

break;

default:

printf("Invalidinput\n");

break;

}

A)Youhavechosentoadddata

B)Youhavechosentodeletedata

C)Youhavechosentodeletedata

Invalidinput

D)Youhavechosentodeletedata

Youhavechosentoviewdata

●假设charstr[10]=”China\0”;执行strlen(str)后的结果是()

A)5B)6C)7D)9

●运行以下程序的输出结果是()

voidmain()

{

intn[5]={0},i,k=2;

for(i=0;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;}

voidmain()

{

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的阶乘

D)以上三项皆错

●递归调用中的函数状态将在()中得到保持

A)堆栈B)堆(Heap)C)树D)以上皆错

●以下程序的输出结果是()

voidfun(intx,inty,intz)

{

z=x*x+y*y;

}

voidmain()

{

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]

●以下循环体的执行次数是()

voidmain()

{inti,j;

for(i=0,j=1;i<=j+1;i+=2,j--)

printf("%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++;

}

printf("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("%d%d%d",&i,&j,&k);

C、scanf("%d,%d,%d",&i,&j,&k);

D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);

●判断char型变量ch是否为小写字母的正确表达式是()。

A、’a’<=ch<=’z’B、(ch>=’a’)&(ch<=’z’)

C、(ch>=’a’)&&(ch<=’z’)D、(ch>=’a’)AND(ch<=’z’)

●请阅读以下程序:

voidmain()

{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次

●以下程序的运行结果是()

#include

voidmain()

{intk=5,a=3,b=2,c=1;

printf("%d\n",k

k:

(c

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数组长度长

●下面程序运行的结果是()。

voidmain()

{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、不参加编译,但会出现在目标程序中

●以下程序的输出结果是()。

voidmain()

{

inta=0,i;

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

{

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;x=y;

 

●已知函数原型为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

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<3&&5<7B、!

(5<10)

C、11&&0x01D、!

(4<7)||(2<8)

●以下函数调用语句中实参的个数()。

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

●下面程序的运行结果是()

#include

voidmain()

{inti,j,x=0;

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

{x++;

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

{if(j%2)continue;

x++;

}

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&&a<=0D、a>=10‖a<=0

●定义如下变量和数组:

inti;

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

则下面语句的输出结果是(

for(i=0;i<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++;break;

case2:

a++;b++;

}

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=&x;D、*p=*x;

●下列关于#include“test.h”与#include〈test.h〉的叙述中,正确的是()。

A、#include“test.h”仅仅搜索当前目录

B、#include仅仅搜索源程序所在目录

C、#include“test.h”直接按系统设定的标准方式搜索目录

D、#include“test.h”先在源程序所在目录搜索,再按系统设定的标准方式搜索

●设有以下说明语句

structstu

{inta;

floatb;

}stutype;

则下面的叙述不正确的是()

A、struct是结构体类型的关键字

B、stuctstu是用户定义的结构体

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1