黑龙江省职教中心计算机专业C语言复习题四.docx

上传人:b****1 文档编号:12787269 上传时间:2023-04-22 格式:DOCX 页数:40 大小:34.32KB
下载 相关 举报
黑龙江省职教中心计算机专业C语言复习题四.docx_第1页
第1页 / 共40页
黑龙江省职教中心计算机专业C语言复习题四.docx_第2页
第2页 / 共40页
黑龙江省职教中心计算机专业C语言复习题四.docx_第3页
第3页 / 共40页
黑龙江省职教中心计算机专业C语言复习题四.docx_第4页
第4页 / 共40页
黑龙江省职教中心计算机专业C语言复习题四.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

黑龙江省职教中心计算机专业C语言复习题四.docx

《黑龙江省职教中心计算机专业C语言复习题四.docx》由会员分享,可在线阅读,更多相关《黑龙江省职教中心计算机专业C语言复习题四.docx(40页珍藏版)》请在冰豆网上搜索。

黑龙江省职教中心计算机专业C语言复习题四.docx

黑龙江省职教中心计算机专业C语言复习题四

黑龙江省职教中心计算机专业C语言复习题四

一、选择题(第1-10小题每小题2分,第11-50小题第小题1分,共60分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)若有语句如下:

int i=-19,j=i%4; 

printf(“%d\n”,j); 则输出结果是______。

A)-4  B)-4.30    C)-3   D)-3.00

(2)请选出可用作 C 语言用户标识符的一组标识符______。

A)voidB)a3_b3 C) A 23D)2a

define   _123       _abc        DO

WORD      IF        month        33#

(3)若有说明:

inta[][4]={0,0};则下面不正确的叙述是

A)数组a的每个元素都可得到初值0

B)二维数组a的第一维大小为1

C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小

D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值

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

main()

{inta,i;a=0;

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

{switch(i)

{case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;

}

}printf("%d\n",a);

}

A)31B)13C)10D)20

(5)设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是

A)while循环执行10次

B)循环是无限循环

C)循环体语句一次也不执行

D)循环体语句执行一次

(6)下面程序的功能是将从键盘输入的一对数由小到大排序输出,当输入一对相等数时结束循环,在划线处应填入的语句是

#include

main()

{inta,b,t;

scanf("%d%d",&a,&b);

while()

{f(a>b)

{t=a;a=b;b=t;}

printf("%d,%d\n",a,b);

scanf("%d%d",&a,&b);

}

}

A)!

a=bB)a!

=bC)a==bD)a=b

(7)设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是

A)x&&yB)x<=y

C)x||++y&&y-zD)!

(x

z||1)

(8)若变量已正确说明为int类型,要通过语句scanf("%d%d%d",&a,&b,&c);给a赋值3,b赋值5,c赋值8,不正确的输入形式是

A)3<回车>B)3,5,8<回车>

5<回车>

8<回车>

C)358<回车>D)3tab5tab8<回车>(9)有以下程序

voidfun(inta,intb,intc)

{a=456,b=567,c=678;}

main()

{intx=10,y=20,z=30;

fun(x,y,z);

printf("%d,%d,%d\n",x,y,z);

}

输出结果是

A)30,20,10B)10,20,30

C)456,567,678D)678,567,456

(10)有以下程序

main()

{inti;

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

switch(i)

{case1:

printf("%d",i);

case2:

printf("%d",i);

default:

printf("%d",i);

}

}

执行后输出的结果是______。

A)011122B)012C)012020D)120

(11)以下选项中可作为C语言合法整数的是______。

A)10110BB)0386C)0XffaD)x2a2

(12)以下不能定义为用户标识符的是______。

A)scanfB)VoidC)_3com_D)int

(13)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是______。

A)int*i=NULL;B)float*f=NULL;

scanf("%d",i);*f=10.5;

C)chart='m',*c=&t;D)long*L;

*c=&t;L='\0';

(14)下列关于c语言数据文件的叙述中正确的是______。

A)文件由ASCII码字符序列组成,C语言只能读写文本文件

B)文件由二进制数据序列组成,C语言只能读写二进制文件

C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

(15)以下选项中非法的表达式是______。

A)0<=x<100B)i=j==0

C)(char)(65+3)D)x+1=x+1

(16)有以下程序

main()

{inta=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a

printf("%d,%d\n",k,m);

}

程序运行后的输出结果是______。

A)0,0B)0,1C)1,0D)1,1

(17)有定义语句:

inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是______。

A)if(c

elseif(b

elsex=3;elsex=1;

C)if(a<3)x=3;D)if(a

if(a<2)x=2;if(b

if(a<1)x=1;if(c

(18)以下能正确定义一维数组的选项是______。

A)intnum[];B)#defineN100

intnum[N];

C)intnum[0..100] ;D)intN=100;

intnum[N]

(19)有以下程序

main()

{ints=0,a=1,n;

scanf("%d",&n);

do

{s+=1;a=a-2;}

while(a!

=n);

printf("%d\n",s);

}

若要使程序的输出值为2,则应该从键盘给n输入的值是______。

A)-1B)-3C)-5D)0

(20)有以下程序

main()

{charstr[]="xyz",*ps=str;

while(*ps)ps++;

for(ps--;ps-str>=0;ps--)

puts(ps);}

执行后输出结果是______。

A)yzB)zC)zD)x

yzxyz

Xyzyzxyzxy

(21)以下不能正确定义二维数组的选项是______。

A)inta[2][2]={{1},{2}};

B)inta[][2]={1,2,3,4};

C)inta[2][2]={{1},2,3}

D)inta[2][]={{1,2},{3,4}}

(22)以下叙述中正确的是______。

A)C程序中注释部分可以出现在程序中任意合适的地方

B)花括号“{”和“}”只能作为函数体的定界符

C)构成C程序的基本单位是函数,所有函数名都可以由用户命名

D)分号是C语句之间的分隔符,不是语句的一部分

(23)有以下程序

voidfun(char*a,char*b)

{a=b;(*a)++;}

main()

{charc1='A',c2='a',*p1,*p2;

p1=&c1;p2=&c2;fun(p1,p2);

printf("%c%c\n",c1,c2);

}

程序运行后的输出结果是______。

A)AbB)aaC)AaD)Bb

(24)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。

#include

#include

char*scmp(char*s1,char*s2)

{if(strcmp(s1,s2)<0)

return(s1);

elsereturn(s2);

}

main()

{inti;charstring[20],str[3][20];

for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/

strcpy(string,scmp(string,str[2]));

printf("%s\n",string);

}

若运行时依次输入:

abcd、abba和abc三个字符串,则输出结果为______。

A)abcdB)abbaC)abcD)baca

(25)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是______。

A)函数调用可以作为独立的语句存在

B)函数调用可以作为一个函数的实参

C)函数调用可以出现在表达式中

D)函数调用可以作为一个函数的形参

(26)若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。

s=a;

for(b=1;b<=c;b++)s=s+1;

则与上述程序段功能等价的赋值语句是______。

A)s=a+b;B)s=a+c;C)s=s+c;D)s=b+c;

(27)设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是______。

A)x=x*100+0.5/100.0;

B)x=(x*100+0.5)/100.0

C)x=(int)(x*100+0.5)/100.0;

D)x=(x/100+0.5)/100.0;

(28)下列选项中正确的语句组是______。

A)chars[8];s={"Berjing"};

B)char*s;s={"Beijing"};

C)chars[8];s="Berjing";

D)char*s;s="Beijing";

(29)已定义以下函数

fun(int*p)

{return*p;}

该函数的返回值是______。

A)不确定的值

B)形参p中存放的值

C)形参p所指存储单元中的值

D)形参p的地址值

(30)下列函数定义中,会出现编译错误的是______。

A)max(intx,inty,int*z)

{*z=x>y ?

x :

y ;}

B)intmax(intx,y)

{intz;z=x>y?

x:

y;returnz;}

C)max(intx,inty)

{intz;

z=x>y?

x:

y;return(z);}D)intmax(intx,inty){return(x>y?

x:

y);}

(31)若有定义:

int*p[3];,则以下叙述中正确的是______。

A)定义了一个基类型为int的指针变量p,该变量具有三个指针

B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

C)定义了一个名为*p的整型数组,该数组含有三个int类型元素

D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素

(32)有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)

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

A)a[p-a]B)*(&a[i])

C)p[i]D)*(*(a+i))

(33)有以下程序

main()

{inta;charc=10;

floatf=100.0;doublex;

a=f/=c*=(x=6.5);

printf("%d%d%3.1f%3.1f\n",a,c,f,x);

}

程序运行后的输出结果是______。

A)16516.5B)1651.56.5

C)1651.06.5D)2651.56.5

(34)有以下程序

main()

{intx=3,y=2,z=1;

printf("%d\n",x/y&~z);

}

程序运行后的输出结果是______。

A)3B)2C)1D)0

(35)有以下程序

main()

{intk=4,n=0;

for(;n

{n++;

if(n%3!

=0)continue;

k--;}

printf("%d,%d\n",k,n);

}

程序运行后的输出结果是______。

A)1,1B)2,2C)3,3D)4,4

(36)若运行时给变量x输入12,则以下程序的运行结果是

main()

{intx,y;

scanf("%d",&x);

y=x>12?

x+10:

x-12;

printf("%d\n",y);

}

A)0B)22C)12D)10

(37)以下说法正确的是

A)C语言程序总是从第一个函数开始执行

B)在C语言程序中,要调用函数必须在

main()函数中定义

C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

(38)有以下程序

#defineF(X,Y)(X)*(Y)

main()

{inta=3,b=4;

printf("%d\n",F(a++,b++));

}

程序运行后的输出结果是

A)12B)15C)16D)20

(39)下列程序执行后的输出结果是

voidfunc(int*a,intb[])

{b[0]=*a+6;}

main()

{inta,b[5]={0};

a=0;b[0]=3;

func(&a,b);

printf("%d\n",b[0]);

}

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

(40)若有下面的程序段

chars[]="china";char*p;p=s;

则下列叙述正确的是

A)s和p完全相同

B)数组s中的内容和指针变量p中的内容相等

C)s数组长度和p所指向的字符串长度相等

D)*p与s[0]相等

(41)下列程序的输出结果是

main()

{inta[5]={2,4,6,8,10},*p,**k;

p=a;

k=&p;

printf("%d",*(p++));

printf("%d\n",**k);

}

A)4B)22C)24D)46

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

char*p="abcdefgh";

p+=3;

printf("%d\n",

strlen(strcpy(p,"ABCD")));

A)8B)12C)4D)7

(43)下列函数的运行结果是

main()

{inti=2,p;

intj,k;

j=i;

k=++i;

p=f(j,k);

printf("%d",p);

}

intf(inta,intb)

{intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);

}

A)-1B)1C)2

D)编译出错,无法运行

(44)已知函数的调用形式:

fread(buf,size,count,fp),参数buf的含义是

A)一个整型变量,代表要读入的数据项总数

B)一个文件指针,指向要读的文件

C)一个指针,指向要读入数据的存放地址

D)一个存储区,存放要读的数据项

(45)有如下程序

#defineN2

#defineMN+1

#defineNUM2*M+1

main()

{inti;

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

printf("%d\n",i);

}

该程序中的for循环执行的次数是

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

(46)有如下程序

intfunc(inta,intb)

{return(a+b);}

main()

{intx=2,y=5,z=8,r;

r=func(func(x,y),z);

printf("%d\n",r);

}

该程序的输出的结果是

A)12B)13C)14D)15

(47)下列关于单目运算符++、--的叙述中正确的是______。

A)它们的运算对象可以是任何变量和常量

B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D)它们的运算对象可以是char型变量、int型变量和float型变量

(48)函数fun的返回值是

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!

=‘\0’)num++;

while(b[n])

{*(a+num)=b[n];num++;n++;}

returnnum;

}

A)字符串a的长度B)字符串b的长度

C)字符串a和b的长度之差D)字符串a和b的长度之和

(49)以下程序执行后a的值是

main()

{intx,y=252,i=386,*m=&y,*z=&i;

x=(z==y);

printf("%d",x);

}

A)252B)1C)0

D)运行时出错,x无定值

(50)阅读下列程序,当运行函数时,输入asdafaaz67,则输出为

#include

#include

#include

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!

=‘\0’;i++)

if(str[i]!

=‘‘)

str[j++]=str[i];

str[j]=‘\0’;

}

main()

{charstr[81];

intn;

clrscr();

printf("Inputastring:

");

gets(str);

puts(str);

fun(str);

printf("%s\n",str);

}

A)asdafaaz67B)asdafaaz67

C)asdD)z67

二、填空题(每空2分,共40分)

请将答案分别写在答题卡中序号为【1】至【20】的横线上,答在试卷上不得分。

(1)以下程序运行结果是【1】。

longfib(intg)

{switch(g)

{case0∶return0;

case1∶case2∶return1;

}

return(fib(g-1)+fib(g-2));

}

main()

{longk;

k=fib(5);

printf("k=%d\n",k);

}

(2)以下程序段中,错误的行号是【2】。

①#include

②main()

③{charstr[14];str[]={"IloveChina"};

④printf("%s",str);

⑤}

(3)将以下程序写成三目运算表达式是【3】。

if(a>b)max=a;elsemax=b;

(4)设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为【4】。

(5)设有以下定义和语句,则*(*(p+2)+1)的值为【5】。

inta[3][2]={10,20,30,40,50,60},

(*p)[2];p=a;

(6)以下程序的功能是调用函数fun计算:

m=1-2+3-4+…+9-10,并输出结果。

请填空。

intfun(intn)

{intm=0,f=1,i;

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

{m+=i*f;

f=__【6】____;

}

returnm;

}

main()

{printf("m=%d\n",__【7】____);}

(8)以下程序运行后的输出结果是__【9】____。

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{case0:

m++;n++;break;

case10:

n++;break;

default:

k++;n++;

}

printf("%d%d%d\n",m,n,k);

}

(9)以下程序运行后的输出结果是__【10】___。

main()

{inta=1,b=3,c=5;

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

(10)以下程序运行后的输出结果是__【11】____。

main()

{charm;

m='B'+32;printf("%c\n",m);

}

(11)执行以下程序后,输出"#"号的个数是

__【12】____。

#include

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

(12)请在以下程序第一行的下划线处填写适当内容,使程序能正常运行。

__【13】____(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf(%1f\n",max(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?

a:

b);}

(13)下面程序的输出是  【14】  。

main()

{int arr[10],i,k=0;

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

            arr[i]=i; 

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

            k+=arr[i]+i; 

        printf("%d\n",k);}

(14)以下程序运行后的输出结果是__【15】。

main()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

p

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

当前位置:首页 > 医药卫生 > 药学

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

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