信息工程学院C语言复习资料.docx

上传人:b****6 文档编号:6334424 上传时间:2023-01-05 格式:DOCX 页数:18 大小:22.19KB
下载 相关 举报
信息工程学院C语言复习资料.docx_第1页
第1页 / 共18页
信息工程学院C语言复习资料.docx_第2页
第2页 / 共18页
信息工程学院C语言复习资料.docx_第3页
第3页 / 共18页
信息工程学院C语言复习资料.docx_第4页
第4页 / 共18页
信息工程学院C语言复习资料.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

信息工程学院C语言复习资料.docx

《信息工程学院C语言复习资料.docx》由会员分享,可在线阅读,更多相关《信息工程学院C语言复习资料.docx(18页珍藏版)》请在冰豆网上搜索。

信息工程学院C语言复习资料.docx

信息工程学院C语言复习资料

一、单项选择题

1.C语言的运算符按运算对象的数目可以分为_______。

A)单目运算一种B)单目和双目运算符

C)单目、双目和三目运算符D)单目、双目、三目运算和四目运算符

2.C语言表达式2/5*10的值是______。

A)0.04B)4C)4.0D)0

3.已知变量f和i的类型说明如下:

floatf=12.34;inti;

则以下符合C语言语法的表达式是______。

A)i=(int)f%5B)i=int(f)%5

C)i=f%5D)i=(intf)%5

4.能正确表示数学式1≤x≤5的C语言表达式是______。

A)1<=x<=5B)(x>=1)&(x<=5)

C)(x>=1)&&(x<=5)D)(1<=x)||(5>=x)

5.设变量c的数据类型是char,i的数据类型是int,f的数据类型是float,则C语言表达式c*i+c*f-i+100值的数据类型为______。

A)intB)floatC)charD)不确定

6.在下列选项中,合法的C语言用户标识符的是_______。

A)intB)sinC)ifD)i+j

7.C程序的执行从_______开始。

A)程序中的第1个语句B)程序中的第1个函数

C)名为main的函数D)包含文件的第1个函数

8.凡在C语言函数中未指定存储类别的变量,其隐含的存储类别为______。

A)自动(auto)B)静态(static)C)字符串D)字符或字符型变量值

11.在C语言中,以下错误的描述是______。

A)break语句不能用于循环语句和switch语句外的任何其它语句

B)在switch语句中使用break语句或continue语句的作用相同

C)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环

D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

12.在C语言中,数组作为函数的形参,函数调用时,若用数组名作为函数的实参,则实际上传递给形参的是______。

A)数组首地址B)数组的第一个元素值

C)数组中全部元素的值D)数组元素的个数

13.C语言编译系统对宏命令是______。

A)在程序运行时进行替换处理

B)在程序连接时进行处理

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

D)在对源程序中其它成份正式编译之前进行处理

14.设x、y为整型变量且已赋值,将其中较大的值输出的、正确的if语句是______。

A)if(x>y)printf(“%d”,x);

B)if(x>y)printf(“%d”,x);printf(“%d”,y);

C)if(x>y);printf(“%d”,x);elseprintf(“%d”,y);

D)if(x>y)printf(“%d”,x);elseprintf(“%d”,y);

15.对以下程序段描述正确的是______。

intx=10;

while(x)x=x/4;

A)不执行循环体B)循环体执行一次C)循环体执行二次D)死循环

16.在C语言中,引用数组元素时,对数组下标的数据类型以下说法错误的是______。

A)数组下标可以用整型常量B)数组下标可以用整型变量

C)数组下标可以用任意类型的表达式D)数组下标可以用整型表达式

17.以下C函数的功能是______。

intfun(intx,inty){

intz=0;

z=x>y?

x:

y;

returnz;

}

A)返回x和y二者中的最大值B)返回x和y二者中的最小值

C)返回一个不确定的值D)返回函数值0

18.定义数组:

ints[10];则数组元素下标的取值______。

A)最小值为1,最大值为10B)最小值为0,最大值为10

C)最小值为0,最大值为9D)最小值为1,最大值为9

19.定义inti,s[4][5];则不能表示数组第3行第3列元素值的是_____。

A)*(*(x))+3B)x[3][3]

C)*(*(x+3)+3)D)*(x[3]+3)

20.以下C函数的类型是_______。

fun(floatf){

printf(“%f\n”,f);

}

A)intB)floatC)voidD)无法确定

21.设char*s1,s2[255]=“programing”;以下操作正确的是_______。

A)*s1=“function”;B)s2=“function”;s1=s2;

C)s1=“function”;s2=s1;D)*s2='P';s1=s2;

22.设有下列语句:

structstudent{

intnum,age;

};

structstudentstu[3]={{6001,20},{6003,21},{6005,19}};

structstudent*p=stu;

则下面的C语言表达式中,值为6003的是_______。

A)++(p->num)B)(p++)->num

C)(*p++).numD)(*++p).num

23.已有定义int(*p)();则指针p可以_______。

A)代表函数的返回值B)指向函数的入口地址

C)代表函数的类型D)代表函数返回值的类型

24.若用下列语句输出26个大写英文字母:

(1)for(a='A';a<='Z';a++)printf("%c",a);

(2)for(a='Z';a>='A';a--)printf("%c",a);

(3)for(a='A';a<='Z';)printf("%c",a++);

(4)for(a='A';a++<='Z';)printf("%c",a);

以下说法正确的是_______。

A)全都能输出B)只有前三个语句可以输出

C)只有前两个语句可以输出D)只有第一个语句可以输出

25.设以下程序用来求三个元素的数组中,第1个元素与第3个元素之和。

voidmain(){

inta[3]={3*0},i;

for(i=1;i<3;i++)scanf("%d",a[i]);

for(i=1;i<3;i++)a[0]=a[0]+a[i+1];

printf("%d",a[0]);

}

则下述说法正确的是_______。

A)第2行有语法错误B)第3行有错误,程序得不到预期结果

C)编译时第4行出现语法错误D)可以得到正确结果

26.一个C程序的执行是从______。

A)本程序的main函数开始,到main函数结束

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C)本程序的main函数开始,到本程序文件的最后一个函数结束

D)本程序文件的第一个函数开始,到本程序main函数结束

27.一个C语言程序是由______。

A)若干主程序和若干子程序组成B)函数组成

C)若干过程组成D)若干子程序组成

28.以下不能定义为用户标识符是______。

A)MainB)_0C)_intD)sizeof

29.合法的C语言赋值语句是______。

A)a=b=58B)i++;C)a=58,b=58D)k=int(a+b);

30.以下所列的C语言常量中,错误的是______。

A)0xFFB)1.2e0.5C)2LD)’\72’

31.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是______。

A)1B)2C)2.0D)2.5

32.若有说明语句:

inta=5;a++;

此时表达式a++的值是______。

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

33.putchar函数可以向终端输出一个______。

A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值

34.以下叙述中错误的是_____。

A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址

C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标越界"的出错信息

D)可以通过赋初值的方式确定数组元素的个数

35.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为______。

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

36.以下程序执行后j的值是______。

voidmain(){

intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i<8){

if(p[i]%2)j+=p[i];

i++;

}

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

}

A)42B)45C)56D)60

37.以下能正确定义一维数组的选项是______。

A)inta[5]={0,1,2,3,4,5};B)chara[]={0,1,2,3,4,5};

C)chara={'A','B','C'};D)inta[5]="0123";

39.以下程序的输出结果是______。

voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}

voidmain(){

inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&a[7];

while(p<=q){f(p,q);p++;q--;}

for(i=0;i<8;i++)printf("%d",a[i]);

}

A)82345671B)56781234C)12345678D)87654321

40.已有定义int(*p)();,则指针p可以_______。

A)代表函数的返回值B)指向函数的入口地址

C)代表函数的类型D)代表函数返回值的类型

43.以下程序执行后sum的值是______。

voidmain(){

inti,sum=0;

for(i=1;i<6;i++)sum+=i;

printf(“%d\n”,sum);

}

A)15B)14C)不确定D)0

44.以下程序的输出结果是______。

voidmain(){

inta=1,b;

for(b=1;b<=10;b++){

if(a>=8)break;

if(a%2==1){a+=5;continue;}

a-=3;

}

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

}

A)3B)4C)5D)6

45.以下程序的输出结果是______。

voidmain(){

chars[]="159",*p;p=s;

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

}

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

46.若执行fopen函数时发生错误,则函数返回值是______。

A)EOFB)0C)1D)地址值

47.以下能正确定义二维数组的是_______。

A)inta[][3];B)inta[][3]=2{2*3};

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

48.下面函数的功能是______。

intfun(char*a,char*b){

while((*a!

='\0')&&(*b!

='\0')&&(*a==*b)){a++;b++;}

return(*a-*b);

}

A)计算a和b所指字符串的长度之差

B)将b所指字符串连接到a所指字符串中

C)将b所指字符串连接到a所指字符串后面

D)比较a和b所指字符串的大小

49.设有以下语句

typedefstructS{

intg;

charh;

}T;

则下面叙述中正确的是_________。

A)可用S定义结构体变量B)可以用T定义结构体变量

C)S是struct类型的变量D)T是structS类型的变量

50.以下程序运行后的输出结果是____

#defineS(x)4*x*x+1

voidmain(){

inti=6,j=8;

printf("%d\n",S(i+j));

}

A)81B)785C)402D)401

51.有以下程序

voidmain(){

chara[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘\0’};inti,j;

i=sizeof(a);j=strlen(a);

printf(“%d,%d\b”i,j);

}

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

A)9,9B)8,9C)1,8D)9,8

52.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是_____。

A)abs(x-y)<10B)x-y>-10&&x-y<10

C)@(x-y)<-10||!

(y-x)>10D)(x-y)*(x-y)<100

53.若有说明语句:

intc[4][5],(*p)[5];p=c;能正确引用c数组元素的是_________。

A)p+1B)*(p+3)C)*(p+1)+3D)*(p[0]+2))

54.若执行fgetc函数时遇到文件结束符,则函数返回值是______。

A)EOFB)0C)1D)NULL

二、程序阅读题

1.源程序如下

#include

voidmain(){

inta,b,c,d;

unsignedu;

a=12;b=-24;u=10;

c=a+u;d=b+u;

printf("a+u=%d,b+u=%d\n",c,d);

}

程序运行结果为:

2.源程序如下

#include

voidmain(){

inta=10,b=0;

if(a!

=0){

a=a+1;

b=b+1;

}

else{

a=a+2;

b=b+2;

}

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

}

程序运行结果为:

3.源程序如下

#defineV(s)s*s*s

#include

voidmain(){

intvolume;

volume=V

(1);printf("%d\t",volume);

volume=V

(2);printf("%d\t",volume);

volume=V(1+2);printf("%d\n",volume);

}

程序运行结果为:

4.源程序如下

#include

voidmain(){

chars[]={"12345"};

voidsub_s1(chars[],intn);

voidsub_s2(chars[],intn);

sub_s1(s,5);

sub_s2(s,6);

}

voidsub_s1(chars[],intn){

inti,j;

for(i=0;i

for(j=0;j

printf("%c",s[j%5]);

printf("\n");

}

}

voidsub_s2(chars[],intn){

inti,j;

for(i=0;i

for(j=i;j

printf("%c",s[j%5]);

printf("\n");

}

}

程序运行结果为:

5.源程序如下

#include

voidmain(){

inti,a;

intfun(intm);

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

a=fun(4+i);

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

}

}

intfun(intm){

staticintn=0;

m/=2;m=m*2;

if(m){

n=n*m;

return(fun(m-2));

}

else

return(n++);

}

程序运行结果为:

6.源程序如下

#include

voidmain()

{inti,k=0,s[10]={1,2,3,4,5,6,7,8,9,10};

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

if(i%2)k+=s[i];

for(i=i-1;i>=0;i--)

if(i%5==0)printf(“%d\t”,s[i]);

printf(“%d\n”,k);

}

程序运行结果为:

7.源程序如下:

#include

voidmain(){

intk=4,m=1,p;

p=func(k,m);printf("%d,",p);

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

}

intfunc(inta,intb){

staticintm=0,i=2;

i+=m+1;

m=i+a+b;

returnm;

}

程序运算后的结果为:

____________。

8.源程序如下:

voidmain(){

inta[][3]={{1,2,3},{4,5,0}},{*pa}[3],i;

pa=a;

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

if(i<2)

pa[1][i]=pa[1][i]-1;

else

pa[1][i]=1;

printf("%d\n",a[0][1]+a[1][1]+a[1][2]);

}

程序运算后的结果为:

____________。

9.源程序如下:

intm(unsignedk){

ints=1;

do{

s*=k%10;k/=10;

}while(k);

returns;

}

voidmain(){

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

}

则程序的输出结果是果是:

____________。

10.源程序如下:

voidmain(){

inta=10,b=20,c;

c=(a%b<1)||(a/b>1);

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

}

程序运算后的结果为:

____________。

11.源程序如下:

#include

move(char*str,intn){

chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)

str[i]=str[i-1];

str[0]=temp;

}

voidmain(){

chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(s);

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

move(s,z);

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

}

若从键盘输入:

3,abcde<回车>,则输出结果是:

____________。

12.源程序如下:

voidmain(){

intm=12,n=34;

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

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

}

程序运算后的结果为:

____________。

三、程序填空题

1.以下程序运行时从键盘输入字符串ABCDE按回车键结束输入,要求在下划线上填入合适的内容,使输入字符串中的‘A’和‘B’转换为字符‘#’输出,其它字符输出为‘*’。

#include

voidmain(){

charc;

while((c=getchar())!

=________________){

switch(c){

case'A':

case'B':

putchar('#');___________________;

default:

putchar('*');

}

}

}

2.以下程序从键盘输入20个整数存入数组,统计输入非负数的个数,并计算输入的非负整数之和。

请填空完成。

#include

voidmain(){

inti,a[20],s,n;

s=n=0;

for(i=0;i<20;i++)____________;

for(i=0;i<20;i++){

if(a[i]<0)

__________________;

s+=a[i];n++;

}

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

}

3.以下函数的功能是删除字符串s中所出现的与变量c相同的字符,请填空完成。

voidfun(chars[],charc){

inti,j;

for(i=j=0;_____________;i++)

if(s[i]!

=c)___________________;

s[j]='\0';

}

4.以下程序输出1+2+3+……+10的和,请填空完成。

#include

voidmain(){

_______________;

i=1;

do{

s=s+i;

i++;

}while___________________;

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

}

5.设fp为文件型指针变量,ch为字符变量,以下程序段从键盘输入字符,然后存入磁盘文件,直到输入一个‘#’为止,请填空完成。

(注:

‘#’不存入文件中)

ch=getchar();

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

当前位置:首页 > 表格模板 > 合同协议

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

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