常熟理工学院 C语言题库(本三)_第1页
常熟理工学院 C语言题库(本三)_第2页
常熟理工学院 C语言题库(本三)_第3页
常熟理工学院 C语言题库(本三)_第4页
常熟理工学院 C语言题库(本三)_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

结构化程序设计语言编写的程序由三种结构组成:依次结构、分支结构和。

一个完整的C程序可以有多个函数,其中有且只能有一个名为

的函数。

数学式痂所对应的C语言表达式为(m,l/3.0)o

在调用函数fopen("d:\\b.daf,VW,若d盘根书目下不存在文件

b.dat,则函数的返回值是o

执行下面程序段中的语句“k=A*A+1J'后k的值是o

#defineB2

#defineAB+l

k=A*A+1;

已有定义“floatm;doublen;inta;longb;charc;",则表达式

m+n*a/m+b/n+c值的类型为。

C语言有效的预处理吩咐总是以开头。

已有定义“inta[10],*p=a+3;”,则数组a的最终一个元素是

p[]«

已有定义“intn=12;doublea;”,则执行语句“a=n/=5;”后,a的值

为。

若要声明一个类型名STR,使得定义语句STRs等价于char*s,则声明

语句是。

程序设计语言的发展经验了几个阶段:机器语言、汇编语言

和o

一个C程序总是从函数起先执行的。

,,b

已有定义“doublea=5,b=10;)则计算a的库函数调用形式

是o

已有定义“Charch='a';w,则表达式ch=ch-&+A的值为字符

的编码。

表示“x>y>z”的C语言表达式是x>=y。

C语言有效的预处理吩咐总是以开头。

常量'r的数据类型是O

已有定义“intb[10],*p=b,*q;q=&b[5];M,则表达式q-p的值

是o

在文件中,以符号常量EOF作为文本文件(字符流文件)的结束标记,

EOF代表的值是o

若要声明一个类型名STR,使得定义语句STRs等价于char*s,则声明

语句是O

结构化程序设计语言编写的程序由三种结构组成:依次结构、

和循环结构。

C语言中除复合语句外的其它全部语句都以结束。

已有定义"doublea=10,b=5;",则计算ab的库函数调用形式

是o

C语言有效的预处理吩咐总是以开头。

已有定义“chara=l;intb=2;floatc=3;doubled=4;”,则表达式

“c=a+b+c+d”值的类型为o

用typedef定义一个长度为10的整型数组NUM的语句是。

执行下面程序段中的语句“k=A*A+l;"后k的值是o

#defineB2

#defineAB+l

k=A*A+2;

已有定义“inta[][4]={l,2,3,4,5,6,7,8,9};”,则数组a第一维的大

小是。

程序中已运用预处理吩咐“#include<stdio.h>",为使语句

“fp=fopen("asc.txt”,T);”能正常执行,在该语句之前必需有定义

FILE;o

执行uprintf("%d,%d,',a,b,c,d);”后在屏幕上将输出个

整数。

以下叙述中正确的是

A)程序设计的任务就是编写程序代码并上机调试

B)程序设计的任务就是确定所用数据结构

C)程序设计的任务就是确定所用算法

D)以上三种说法都不完整

以下选项中,能用作用户标识符的是

A)void

B)8_8

C)_0_

D)unsigned

阅读以下程序

#include

main()

{intcase;floatprintF;

printf(“请输入2个数:”);

scanf(u%d%f',&case,&pjrintF);

printf(u%d%f\n",case,printF);

}

该程序编译时产生错误,其出错缘由是

A)定义语句出错,case是关键字,不能用作用户自定义标识符

B)定义语句出错,printF不能用作用户自定义标识符

C)定义语句无错,scanf不能作为输入函数运用

D)定义语句无错,printf不能输出case的值

表达式:(int)((double)9/2)・(9)%2的值是

A)0

B)3

C)4

D)5

若有定义语句:intx=10;,则表达式x-=x+x的值为

A)-20

B)-10

C)0

D)10

有以下程序

#include

main()

{inta=l,b=O;

printf(M%d,w,b=a+b);

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

}

程序运行后的输出结果是

A)0,0

B)1,0

C)3,2

D)1,2

设有定义:inta=l,b=2,c=3;,以下语句中执行效果与其它三个不同的是

A)if(a>b)c=a,a=b,b=c;

B)if(a>b){c=a,a=b,b=c;}

C)if(a>b)c=a;a=b;b=c;

D)if(a>b){c=a;a=b;b=c;}

有以下程序

#include

main()

Iintc=O,k;

for(k=l;k<3;k++)

switch(k)

{default:c+=k

case2:c++;break;

case4:c+=2;break;

}

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

}

程序运行后的输出结果是

A)3

B)5

C)7

D)9

以下程序段中,与语句:k=a>b?(b>c?l:O):O;功能相同的是

A)if((a>b)&&(b>c))k=l;

elsek=0;

B)if((a>b)||(b>c)k=l;

elsek=0;

C)if(a<=b)k=0;

elseif(b<=c)k=l;

D)if(a>b)k=l;

elseif(b>c)k=l;

elsek=0;

20)有以下程序

#include

main()

{chars[]={u012xy>>};inti,n=O;

for(i=0;s[i]!=0;i++)

if(s[i]>=,a'&&s[i]<=,z')n++;

printf("%d\n”;n);

}

程序运行后的输出结果是

A)0

B)2

C)3

D)5

有以下程序

#include

main()

{intn=2,k=0;

while(k++&&n++>2);

printffu%d%d\n”,k,n);

)

程序运行后的输出结果是

A)02

B)13

C)57

D)12

有以下定义语句,编译时会出现编译错误的是

A)chara=ya';

B)chara=y\n';

C)chara=,aa,;

D)chara=9\x2d,;

有以下程序

#include

main()

{charcl,c2;

cl=,A,+,8,■,4,;

c2=,A,+'8,-5;

printf(a%c,%d\nw,cl,c2);

已知字母A的ASCII码为65,程序运行后的输出结果是

A)E,68

B)D,69

C)E,D

D)输出无定值

有以下程序

#include

voidfun(intp)

{intd=2;

p=d++;printf("%d”,p);}

main()

{inta=1;

fun(a);printf(w%d\nw,a);}

程序运行后的输出结果是

A)32

B)12

C)21

D)22

以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程

序中有错导致不能实现预定功能

#defineMIN-2147483647

intfindmax(intx[],intn)

{inti,max;

for(i=0;i<N;I++)<p=""/>

{max=MIN;

if(max

returnmax;

造成错误的缘由是

A)定义语句inti,max;中max未赋初值

B)赋值语句max=MIN;中,不应给max赋MIN值

C)语句if(max

D)赋值语句max=MIN;放错了位置

有以下程序

#include

main()

{intm=1,n=2,*p=&m,*q=&n,*r;

r=p;p=q;q=r;

printf("%d,%d,%d,%d\n”,m,n,*p,*q);

)

程序运行后的输出结果是

A)1,2,1,2

B)1,2,2,1

C)2,1,2,1

D)2,1,1,2

若有定义语句:inta[4H10],*p,*q⑷;且。<i<4,则错误的赋值是

A)p=a

B)q[i]=a[i]

C)p=a[i]

D)p=&a[2][l]

有以下程序

#include

#include

main()

{charstr[Jl20]={MOne*Worldw,MOne*Dream!w},*p=str[l];

printf(u%d,M,strlen(p));printf(<<%s\n>,,p);

}

程序运行后的输出结果是

A)9,One*World

B)9,One*Dream

C)10,One*Dream

D)10,One*World

有以下程序

#include

main()

{inta[]={2,3,5,4},i;

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

switch(i%2)

{case0:switch(a[i]%2)

{caseO:a[i]++;break;

casel:a[i]—;

(break;

casel:a[i[=O;

}

for(i=0;i<4;i++)printf("%d”,a[i]);printfl:a\nn);

)

A)3344

B)2050

C)3040

D)0304

有以下程序

#include

#include

main()

{chara[10]=wabed”;

printf("%d,%d\n”,strlen(a),sizeof(a));

}

程序运行后的输出结果是

A)7,4

B)4,10

C)8,8

D)10,10

下面是有关C语言字符数组的描述,其中错误的是

A)不行以用赋值语句给字符数组名赋字符串

B)可以用输入语句把字符串整体输入给字符数组

C)字符数组中的内容不肯定是字符串

D)字符数组只能存放字符串

下列函数的功能是

fun(char*a,char*b)

{while((*b=*a)!=,\0'){a++,b++;}}

A)将a所指字符串赋给b所指空间

B)使指针b指向a所指字符串

C)将a所指字符串和b所指字符串进行比较

D)检查a和b所指字符串中是否有‘'0'

设有以下函数

voidfun(intn,char*s){.......}

则下面对函数指针的定义和赋值均是正确的是

A)void(*pf)();pf=fun;

B)viod*pf();pf=fun;

C)void*pf();*pf=fun;

D)void(*pf)(int,char);pf=&fun;

有以下程序

#include

intf(intn);

main()

{inta=3,s;

s=f(a);s=s+f(a);printf(a%d\nw,s);

intf(intn)

{staticinta=1;

n+=a++;

returnn;

}

程序运行以后的输出结果是

A)7

B)8

C)9

D)10

有以下程序

#include

#definef(x)x*x*x

main()

{inta=3,s,t;

s=f(a+l);t=f((a+l));

printff<<%d,%d\n,,s,t);

)

程序运行后的输出结果是

A)10,64

B)10,10

C)64,10

D)64,64

下面结构体的定义语句中,错误的是

A)structord{intx;inty;intz;};structorda;

B)structord{intx;inty;intz;}structorda;

C)structord{intx;inty;intz;}a;

D)struct{intx;inty;intz;}a;

设有定义:char*c;,以下选项中能够使字符型指针c正确指向一个字符

串的是

A)charstr[]=>>string”;c=str;

B)scanf("%s”©;

C)c=getchar();

D)*c="string";

有以下程序

#include

#include

structA

{inta;charb[10];doublec;};

structAf(structAt);

main()

M

{structAa={10015ZhangDa^,1098.0};

a=f(a);jprintf("%d,%s,%6.1f\n",a.a,a.b,a.c);

}

structAf(structAt)

(t.a=1002;strcpy(t.b,"ChangRong”);t.c=1202.0;retumt;)

程序运行后的输出结果是

A)1001,ZhangDa,1098.0

B)1001,ZhangDa,1202.0

C)1001,ChangRong,l098.0

D)1001,ChangRong,1202.0

若有以下程序段

intr=8;

printf("%d\n”,r»l);

输出结果是

A)16

B)8

C)4

D)2

下列关于C语言文件的叙述中正确的是

A)文件由一系列数据依次排列组成,只能构成二进制文件

B)文件由结构序列组成,可以构成二进制文件或文本文件

C)文件由数据序列组成,可以构成二进制文件或文本文件

D)文件由字符序列组成,其类型只能是文本文件

下面表示中,不能用作C语言常量的是O

A.OULB.(long)110

C.leOD.'\x2c'

设有定义和声明如下:

#defined2

inta=3;floatb=3.14;charc='dr;

下面表达式中有语法错误的是。

A.a++B.b++

C.c++D.d++

若有枚举类型定义“enumvari{Al,A2,A3,A4=6,A5,A6};”,则枚举

常量A2和A6代表的值分别是o

A.1,6B.1,8

C.2,6D.2,8

下面数组声明语句中正确的是O

A.intn,a[n];B.inta[];

C.inta[2][3]={{2},{l},{3}};D.inta[][3]={{2},{1},{3}};

下面函数定义中正确的是o

A.intfunfinta,b){}B.intfun(inta[][]){}

C.intfun(void){}D.intfun(staticinta,intb用

在C语言中,数字010是一个o

A.十进制数B.八进制数

C.十六进制数D.非法数

若有说明"inta[3][41={0};\则下面正确的叙述是。

A.只有元素a[0][0]可得到初值

B.此说明语句不正确

C.数组a中各元素都可得到初值,但其值不肯定为。

D.数组a中每个元素均可得到初值。

假如有声明“intm,n=5,*p=&m;",与m=n等价的语句是。

A.m=*p;B.*p=*&n;

C.m=&n;D.m=**p;

已有定义"charb[6],*p=b丁',则正确的赋值表达式语句是。

A.b=MChina";B.*b=nChina";

C.p="China'r;D.*p=nChina";

已有定义“charcT5]={'a「b','c',d},*p=ch,i>,则下面语句中不能正

确输出ch数组全部元素值的是o

A.for(i=0;i<4;i++)printf("%c",ch[i]);

B.for(i=0;i<4;i++)printf("%cH,*(ch+i));

C.for(i=0;i<4;i++)printf("%cu,*p++);

D.for(i=0;i<4;i++)printf(,,%c,,>*ch++);

C语言中可以处理的文件类型有o

A.文本文件和二进制文件B.文本文件和数据文件

C.数据文件和二进制文件D.以上三个都不对

若有定义“inta⑸Jb=a,(*c)⑶,*d⑶;”,则下面表达式中有语法错误的

A.a[0]=0B.b[0]=0

C.c[0]=0D.d[0]=0

已知有程序段“charstr[][8]=f'first,',"second"},

*p=&str[O][O];printf("%s\n",p+8);",则执行printf语句后输出

为。

A.secondB.first

C.ondD.nd

下面叙述错误的是o

A.宏替换不占用程序运行时间B.宏名无类型

C.宏名必需用大写字母表示D.宏替换只是字符替换

设有定义和声明语句:

typedefstructcc

{inta;

structcc*b;

}node;

staticnodeaa[3]={5,&aa[l],7,&aa[2],9,'\0'},*p=&aa[O];

下列选项中,表达式值不为5的是o

A.aa[l].b->a-2B.p->b->a-2

C.(p+l)->a-2D.p->a

下面关于共用体类型的叙述正确的是o

A.可以给共用体类型变量干脆赋值

B.一个共用体类型变量中可以同时存入其全部成员

C.一个共用体类型变量中不能同时存入其全部成员

D.共用体类型定义中不能同时出现结构体类型的成员

表达式sizeof(“abc”)的值是。

A.1B.2C.3D.4

下面选项中,不能用作用户标识符的是。

A.&aB._00C.FORD.print

已知有声明"intx=3,y=4,z;w,则执行语句“z=l/2*(x+y);"后,z的

值是。

A.0B.3

C.3.5D.4

下列运算符中,优先级最低的是o

A.*B.!=

C.+D.=

一元二次方程ax2+bx+c=0有两个相异实根的条件是aR。且b2-4ac>0,

下面选项中正确的表达式是o

A.a!=0,b*b-4*a*c>0B.a!=0||b*b-4*a*c>0

C.a&&b*b-4*a*c>0D.!a&&b*b-4*a*c>0

下面定义符号常量P为3.14中正确的是。

A.#definep3.14;B.#definep(3.14)

C.#definep=3.14D.#definep3.14

已有定义"intx=4,y=3,z=5'下面4个程序段中有3个程序段的执

行效果是相同的,另一个执行效果不同的是o

A.if(x>y)z=x,x=y,y=z;B.if(x>y){z=x,x=y,y=z;}

C.if(x>y)z=x;x=y;y=z;D.if(a>y){z=x;x=y;y=z;}

下面关于continue和break语句的叙述中正确的是。

A.continue和break语句都可以出现在switch语句中

B.continue和break语句都可以出现在循环语句的循环体中

C.在循环语句和switch语句之外允许出现continue和break语句

D.执行循环语句中的continue和break语句都将马上终止循环

在while©语句中的e与下面条件表达式等价的是o

A.e==0B.e==l

C.e!=lD.e!=0

若函数调用时的实参为变量,则下面关于函数形参和实参的叙述中正确的

是O

A.实参和其对应的形参占用同一存储单元

B.形参不占用存储单元

C.相同名称的实参和形参占用同一存储单元

D.实参和其对应的形参占用不同的存储单元

在C程序中,若对函数类型未加说明,则函数的隐含类型为。

A.intB.double

C.voidD.char

下面函数中能正确计算n!(n<13)的是。

A.longfflongn)B.longfflongn)

{{if(n<=l)return1;

returnn*f(n-l);elsereturnn*f(n);

C.longf(longn)D.longf(longn)

{staticlongs,i;{longs=l,i;

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

returns;returns;

}}

设n=10,i=4,则赋值运算“n%=i+l”执行后n的值是。

A.0B.1

C.2D.3

已有定义“inta=2;",下面表达式中值不等于8的是。

A.a+=2,a*2B.a+=a*=a

C.(a+7)/2*((a+l)%2+l)D.a*7.2/a+l

下面选项中,可以作为用户标识符的是o

A.6_6B.void

C.unsignedD._0_

已有定义“intn;floata,b;w,则执行语句"b=n=a=3.89;”后,b的

值为。

A.3B.3.0

C.3.89D.4.0

下列运算符中,优先级最低的是。

A.*B.!=

c.+D.

表达式!(x>0&&y>0)等价于。

A.!(x>0)||!(y>0)B.!x>0||!y>0

C.!x>0&&!y>0D.!(x>0)&&!(y>0)

下面定义符号常量P为3.14中正确的是o

A.#definep3.14;B.#definep(3.14)

C.#definep=3.14D.#definep3.14

若变量已正确定义,语句“if(a>b)k=O;elsek=l;"和等价。

A.k=(a>b)?l:O;B.k=a>b;

C.k=a<=b;D.a<=b?0:1;

下面关于continue和break语句的叙述中正确的是。

A.continue和break语句都可以出现在switch语句中

B.continue和break语句都可以出现在循环语句的循环体中

C.在循环语句和switch语句之外允许出现continue和break语句

D.执行循环语句中的continue和break语句都将马上终止循环

在C语言中while和do-while循环的主要区分是。

A.do-while的循环体至少无条件执行一次

B.do-while允许从外部转到循环体内

C.while的循环限制条件比do-while的循环限制条件严格

D.do-while的循环体不能是复合语句

关于函数返回值,下面叙述中正确的是o

A.函数返回值的类型由函数体内retum语句包含的表达式的类型确定

B.若函数体内没有return语句,则函数没有返回值

C.若函数体中有多个retum语句,则函数的返回值是排列在最终面的

return语句中表达式的值

D.函数返回值的类型由函数头部定义的函数类型确定

已有函数fun的定义“intfun(inta,intb|{if(a<b)return(a,b);else

return(b,a);}”,在main。函数中若调用函数f(3,4),得到的返回值

是。

A.3B.4

C.3和4D.4和3

下面关于return语句的叙述正确的是。

A.一个自定义函数中必需有一条retum语句

B.一个自定义函数中可以依据不同状况设置多条retsn语句

C.定义成void类型的函数中可以有带返回值的retsn语句

D.没有return语句的自定义函数在执行结束时不能返回到调用处

已有定义"inta,b/\执行语句“a=(b=2*3,b*5),b+6/'后,变量a的值

是o

A.6B.12

C.30D.36

表达式sizeof("\nsum=13\n")的值是。

A.8B.9

C.10D.11

已有定义Minti,a=l;unsignedj;w,则下列语句执行时会出现无限循环

的语句是O

A.for(j=15;j>0;j-=2)a++;B.for(j=0;j<15;j+=2)a++;

C.for(i=0;i<15;i+=2)a++;D.for(i=15;i>0;i-=2)a++;

下面定义中错误的是o

A.inta=OxFF;B.doublea=1.2e0.5;

C.longa=2L;D.chara='\72';

设有定义和声明如下:

#defined2

inta=3;floatb=3.14;charc='d';

下面表达式中有语法错误的是。

A.a++B.b++

C.C++D.d++

下面声明中错误的是o

A.intb[2]B.intb[]={0,1}

C.intb[3]=0D.intb[3][4]={0}

下面函数定义的头部正确的是O

A.intfunfinta[],b)B.intfun(inta[],inta)

C.intfun(inta,intb)D.intfun(chara[][],intb)

对两个数组a和b进行如下初始化:

chara[]="abcd";

charb[]={'a','b','c;'d');

则下面叙述正确的是。

A.a与b数组完全相同B.数组a比数组b长度大

C.a与b中存放的都是字符串D.a与b长度相同

若有说明"inta[3][4]={0};H,则下面正确的叙述是。

A.只有元素a[0]⑼可得到初值

B.此说明语句不正确

C.数组a中各元素都可得到初值,但其值不肯定为。

D.数组a中每个元素均可得到初值。

已有定义“intm=3,c,*a=&m,*b=&c;",则下列语句中错误的

是o

A.a=b=O;B.a=&c,b=a;

C.&a=&b;D.*b=*a;

已有定义“charb[6],*p=b>,则正确的赋值表达式语句是o

A.b="Chinesen;B.*b="ChineseH;

C.p=nChinese";D.*p="Chinese”;

已有定义“intk,b[10],*p=b;w,现须要将l~10保存到b[0卜b[9]中,

下面程序段中不能实现这一功能的是。

A.for(k=l;k<10;k++)b[k]=k+l;

B.for(k=0;k<10;k++)p[k]=k+l;

C.k=l;while(p<b+10)*p++=k++;

D.k=l;while(p<b+10)*b++=k++;

对文件进行操作时,写文件的含义是O

A.将内存中的信息写入磁盘

B.将磁盘中的信息读到内存

C.将主机中的信息写入磁盘

D.将磁盘中的信息读到主机

已有定义“intM4][4]={{l,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,

15,16}};",若须要引用值为15的数组元素,则下列选项中错误的

是o

A.*(a+3)+2B.*(*(a+3)+2)

C.*(a[3]+2)D.a[3][2]

若有定义“inta[3][4]={0},*pl=a[l],(*p2)[4]=a;\下面表达式中与

aa[l][ll=l;w不等价的是o

A.*(pl+l)=l;B.pl[l][l]=l;

C.*(*(p2+l)+l)=l;D.p2[l][l]=l;

下面叙述错误的是。

A.宏替换不占用程序运行时间B.宏名无类型

C.宏名必需用大写字母表示D.宏替换只是字符替换

设有定义和声明语句:

typedefstructcc

{inta;

structcc*b;

{node;

staticnodeaa[3]={5,&aa[l],7,&aa[2],9,*p=&aa[0];

下列选项中,表达式值不为5的是。

A.aa[l].b->a-2B.p->b->a-2

C.(p+l)->a-2D.p->a

若有结构类型定义“typedefstruct{intx,y[2];}ABC;,\则下面声明中

正确是o

A.ABCx;B.structx;

C•structabcx;D.structABCx;

若有定义和声明typedefenum{green,red,yellow,blue,black}color;

colorflower;,则下列语句中正确的是

A.green=red;B.flower=red;

C.color=red;D.enum=red;

在下面各组标识符中,均可以用作变量名的一组是

A.a02,IntB.table_l,a*.O

C.0a,W13D.for,point

已知有声明"intx=3,y=4,z;M,则执行语句“z=l/3*(x+y)>后,z的

值是____________

A.0B.3C.3.5D.4

已有定义“inta=4,b=5,c=6;“,则下列表达式中值为0的

是。

A.a&&bB.a<=bC.a||b&&cD.!(!c||1)

在C程序中,用表示逻辑值“真

A.小于。的数B.非。的数

C.非1的数D.大于。的数

C源程序中的吩咐#皿日皿€与#(1€五11€是在阶段被处理的。

A.预处理B.编译C.连接D.执行

已有预处理吩咐a#include<math.h>w和声明"intx=4,y;”,下面语

句中语法正确的是o

A.if(x%2=l)y=x;B.if(sqrt(x)%2)y=x;

C.if(x==l)y=x;D.if(x==l)y=&x;

下面关于continue和break语句的叙述中正确的是。

A.continue和break语句都可以出现在switch语句中

B.continue和break语句都可以出现在循环语句的循环体中

C.在循环语句和switch语句之外允许出现continue和break语句

D.执行循环语句中的continue和break语句都将马上终止循环

下面关于循环语句的结论中错误的是o

A.可以用while语句实现的循环,肯定可以用for语句实现

B.可以用for语句实现的循环,肯定可以用while语句实现

C.可以用do-while语句实现的循环,肯定可以用while语句实现

D.do-while语句与while语句的区分仅是关键字“while”出现的位

置不同

C语言中函数返回值的类型是由确定的。

A.retuiri语句中的表达式类型

B.调用该函数的主函数类型

C.定义函数时所指定的函数类型

D.以上都可能

已有函数fun的定义"voidfun2(void){printf("That,sgreat!则

调用fun2函数的正确形式是o

A.fun2;B.fun2();C.fun2(void);D.fun2(l);

C语言规定,变量作实参时,它和对应形参之间的数据传递方式

是。

A.地址传递

B.单向值传递

C.由实参传给形参,再由形参传回给实参

D.由用户指定传递方式

若有“intk=4;",计算表达式(j=k++)后,j和k的值分别为o

A.j=3,k=3B.j=3,k=4

C.j=4,k=4D.j=4,k=5

下列运算符中,优先级最高的是O

A.->B.++

C.&&D,=

不用第三个变量,将a和b的值进行交换的操作是o

A.a+=b;b-=a;a-=b;B.a+=b;b=a-b;a-=b;

C.b-=a;a-=b;a-=b;D.b-=a;a=b-a;a+=b;

下列表示中,不行作为C语言常数的是o

A.010B.1UL

C.'0x4TD.Oxbe

设有定义和声明如下:

#defined3

inta=3;floatb=3.14;charc='d';

下面表达式中有语法错误的是。

A.a++B.b++

C.C++D.d++

下列一维数组的声明中正确的是o

A.inta[];B.intn=5,a[n];

C.inta[3+l]={0};D.inta[3]={4,3,2,1};

下面函数定义的头部正确的是。

A.intfun(inta[],b)B.intfun(inta[],inta)

C.intfun(inta,intb)D.intfun(chara[][],intb)

下面程序段的运行结果是o

charch[5]={n,bJ\O',dJ\O};

printf(”%s",ch);

A.'a''b'B.ab

C.abdD.a,b

己有声明"inta=2jp=&a;",下列正确的语句是.

A.a=p+1.0;B.p=2*p+1.0;

C.p=1000.0;D.a+=*p;

已有定义“charb[6],*p=b「,则正确的赋值表达式语句是

A.b="ABC";B.*b="ABC

C.p=nABC,r;D.*p=MABCH;

已有定义“inta[5]={10,20,3,40,50},*p,i;",下面语句中不能正确输

出a数组全部元素的值的是<,

A.for(p=a,i=0;i<5;i++)printf("%dn,*(p+i));

B.for(p=a;p〈a+5;p++)printf(”%d”,*p);

C.for(p=a,i=0;p<a+5;p++,i++)printf("%d",p[i]);

D.for(p=a;p〈a+5;p++)printf("%d",p[0]);

当文件被正常关闭时,fclose()函数的返回值是o

A.-1B.trueC.0D.1

设有声明语句aintb[3][3]={l1,22,33,44,55,66,77,88,99};",下面语句

中不能输出数组元素的是o

A.printf("%dn,*(*(b+l)+2))B.printf("%d",*(&b[2][0]-l));

C.printf("%d",*(b[l]+2));D.printf(n%dH,*(b+1)[2]);

若有定义“inta[4][4],*p=a[0],(*q)[4]=a;w,则下列叙述中错误的

是o

A.a⑵⑶与q⑵⑶等价B.a⑵⑶与p⑵⑶等价

C.a⑵⑶与*(p+ll)等价D.a⑵⑶与p=p+ll,*p等价

在宏定义语句“#definePI3.1415926”中,宏名PI代替。

A.一个字符串B.一个单精度数

C.一个常量D.一个双精度数

设有定义和声明语句:

typedefstructcc

{inta;

structcc*b;

}node;

staticnodeaa[3]={l1,&aa[l],7,&aa[2],9,'\0*},*p=&aa[O];

下列选项中,表达式值不为5的是o

A.aa[l].b->a-2B.p->b->a-2

C.(p+l)->a-2D.p->a-6

下面关于typedef的叙述错误的是。

A.用typedef可以增加新类型

B.用typedef可以为各种类型说明一个新名,但不能为一个变量说明

一个新名

C.用typedef为类型说明一个新名,通常可增加程序的可读性

D.typedef只是将已存在的类型用一个新的名字来代表

下面关于共用体类型的叙述正确的是o

A.可以给共用体类型变量干脆赋值

B.一个共用体类型变量中可以同时存入其全部成员

C.一个共用体类型变量中不能同时存入其全部成员

D.共用体类型定义中不能同时出现结构体类型的成员

若有定义和声明

typedefenum

{green,red,yellow,blue,black

Jmycolor;

mycolorflower;,

则下列语句中正确的是O

A.green=red;B.flower=red;

C.mycolor=red;D・enum=red;

有以下程序

#include<stdio.h>

main()

{

charcl,c2;

scanf("&c",&cl)

while(cl<65||cl>90)

scanf("&c”,&cl);

c2=cl+32;

printf(a&c,&c\n”,cl,c2);

}

程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能)

[8]

O

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

#include<stdio.h>

main()

{intk=1,s=0;

do{

if{((k&2)!=0)continue;

s+=k;k++;

(while(k)10);

printf("s=&d/n”,s);

}

(1。)下列程序运行时,若输入labcedl2dfv回车,输出结果为[10]

#include<stdio.h>

main()

{char

a=O,ch;

while((ch=getchar())!=,\n,)

{if(a&2!=0&&(ch>9a'&&ch<=,z'))ch=ch-'a'+'A';

a++;putchar(ch);

)

printf(w\nw);

}

(11)有以下程序,程序执行后,输出结果是HU

#include<stdio.h>

voidfun(int*a)

{a[O=a[l];]}

main()

{inta[10]={10,9,8,7,6,5,4,3,2,l},i;

for(i=2;i>=0;i—)fun{&a};

for(i=0;i<10;i++)printf(M&d>,,a);

printf(“\n”);

}

下面程序运行输出结果是。

#include<stdio.h>

#include<string.h>

intmain()

{FILE*fp;

char*strl="2008beijing'1,*str2=',Olympic',,str3[30]='H,;

fp=fopen("d:\\abc.dat","wb");

fwrite(str2,strlen(str2),l,fp);

rewind(fp);

fwrite(strl,strlen(strl),l,fp);

fclose(fp);

fp=fopen("d:\\abc.dat'1,"rbn);

fread(str3,sizeof(str3),1,fp);

puts(str3);

return0;

下面程序运行时输出的结果是。

#include<stdio.h>

enumletter{A,B,C=3,D,E};

intmain()

{char*colorname[]={"Black","Yellow1',"Blue","Green"

nWhite"};

enumlettercl=D,c2=C;

printf("%s",colorname[c1-c2]);

return0;

)

下面程序运行时输出的结果o

#include<stdio.h>

intmain()

{inti,sum=0;

for(i=l;i<6;i++)

sum=sum+i;

printf("%dM,sum);

return0;

}

下面程序运行时输出的结果是O

#include<stdio.h>

intmain()

{intx=0,y=l,z=10;

if(x)

iffy)

z=20;

else

z=30:

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

return0;

)

卜’面程序运行后输出的结果是

#include<stdio.h>

intmain()

{intx=9;

for(;x>0;x")

if(x%3==0)

printf("%du,-x)

return0;

}

F面程序运行时输出结果是

#include<stdio.h>

intfun(intm)

{staticintn=1;

n++;

m+=n;

returnm;

}

intmain()

{intd;

d=fun(3);

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

return0;

)

卜,面程序运行时输出结果是

#include<stdio.h>

intmain()

{intt=l,n=235;

do

{t*=n%10;

n/=10;

}while(n);

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

return0;

下列程序运行时输出的结果是0

#include<stdio.h>

inty=1;

intfunc(intx)

{y*=x;returny;}

intmain()

{inta=l,i;

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

a=a+func(i);

printf("%d",a);

return0;

}

F面程序运行时输出的结果是o

#include<stdio.h>

#include<string.h>

voidfun(charch[])

{inti,j,len;

len=strlen(ch);

for(i=0,j=0;ch[i];i++)

if((ch[i]>='A'&&ch[i]<=fZ')||(ch[i]>='a'&&ch[i]<='z'))

ch[j++]=ch[i];

ch[j]='\0*;

intmain()

{chars[20]="dlo2g3,,;

fun(s);

printf("%s\nu,s);

return0;

}

下面程序运行时输出结果是

#include<stdio.h>

intmain()

{char*p,*q="Thisisabook.";

P=q;

while(*q)q++;

printf("%d\n",q-p);

return0;

}

下面程序运行输出结果是。

#include<stdio.h>

#include<string.h>

intmain()

FILE*fp;

char*strl=,12008beijing';*str2="Olympic”,str3[30]="”;

fp=fopen("d:\\abc.dat'r,"wb");

fwrite(str2,strlen(str2),l,fp);

rewind(fp);

fwrite(strl,strlen(strl),l,fp);

fclose(fp);

fp=fopen(”d:\\abc.dat“,“rb");

fread(str3,sizeof(str3),1,fp);

puts(str3);

return0;

}

下面程序运行时输出的结果是O

#include<stdio.h>

enum{A,B,C,D}letter;

intmain()

{chars[]="your";

letter=C;

putchar(s[letter]);

return0;

}

下面程序运行后输出的结果是O

#includc<stdio.h>

intmain()

{chari;

for(i='a,;i<*f;i++,i++)

printf(n%c",i);

return0;

}

下面程序运行时输出的结果是

#include<stdio.h>

intmain()

{inti,m=0;

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

{switch(i)

{case0:

case1:m++;

case3:m++;

case4:m";break;

}

}

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

return0;

下面程序运行时输出结果是

#include<stdio.h>

longfun(intn)

{staticlongt;

if(n==l)returnt=2;

elsereturn++t;

}

intmain()

{longi,sum=O;

for(i=0;i<4;i++)sum+=fun(i);

printf("%ld",sum);

}

F面程序运行时输出结果是

#include<stdio.h>

voidf(intb)

{inta;a=b;b=3;}

intmain()

{inta=3,b=5;

f(b);

printf("%d,%d”,a,b);

return0;

下列程序运行时输出的结果是

#include<stdio.h>

inty=1;

intfunc(intx)

{y*=x;returny;}

intmain()

{inta=l,i;

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

a=a+func(i);

printf("%dM,a);

return0;

)

下列程序段的输出结果是

#include<stdio.h>

intmain()

{intk;char*s="aBC";

for(k=10;k!=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论