C程序设计参考题型.docx

上传人:b****8 文档编号:9640397 上传时间:2023-02-05 格式:DOCX 页数:22 大小:26.20KB
下载 相关 举报
C程序设计参考题型.docx_第1页
第1页 / 共22页
C程序设计参考题型.docx_第2页
第2页 / 共22页
C程序设计参考题型.docx_第3页
第3页 / 共22页
C程序设计参考题型.docx_第4页
第4页 / 共22页
C程序设计参考题型.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C程序设计参考题型.docx

《C程序设计参考题型.docx》由会员分享,可在线阅读,更多相关《C程序设计参考题型.docx(22页珍藏版)》请在冰豆网上搜索。

C程序设计参考题型.docx

C程序设计参考题型

C语言程序设计参考题型

说明:

★本套练习题仅反映考试的题型,作为考前复习和参考。

★不要死记硬背,而是通过题目掌握其涉及的知识点和程序所涉及的重要算法。

一、单选题

1.C程序的基本构成单位是【C】

A)文件B)命令C)函数D)语句

2.在C语言中,'a'是【B】

A)字符串常量B)字符常量C)变量D)函数

3.在C语言中,“a=b=c=5”属于哪种表达式?

【B】

A)关系B)赋值C)逻辑D)非法

4.设a、b为整型,则表达式(a=2,b=5,b++,a+b)的值是【D】

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

5.若有以下变量定义:

intb=2;

floata=5;

则表达式“a/b”之值为【A】

A)2.5B)2C)3D)5/2

6.若j=3,则表达式(++j)+(j++)的值为【C】

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

7.以下只能输入单个字符的函数是【C】

A)printf()B)puts()C)getchar()D)putchar()

8.若a的原值为4,则表达式“a*=a-=3”运算后,a的值是【D】

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

9.若a=5、b=3、c=1,则表达式“a>b>c”的值为【A】

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

10.若有代数式:

以下错误的C语言表达式是【C】

A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*3

11.下列能输出字符数组str中字符串的语句是【B】

A)printf("%c",str[0]);B)printf("%s",str);

C)printf("%s",str[]);D)putchar(str);

12.若p=&x,则下列关系表达式之值为1的是【B】

A)p==xB)*p==xC)&p==xD)*x==p

13.C语言中最基本的数据类型包括【B】

A)整型、实型、逻辑型B)整型、实型、字符型

C)整型、逻辑型、字符型D)整型、实型、字符串型

14.C语言中,要求运算对象必须是整型数据的运算符是【A】

A)%B)/C)\D)&&

15.表示数学关系“x≥y≥z”的C语言表达式是【C】

A)x>=y>=zB)x>=y||y>=zC)x>=y&&y>=zD)x≥y≥z

16.以下说法中正确的是【C】

A)C程序总是从文件中第一个函数开始执行

B)C程序中,只有main()函数才可以调用其他函数

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

D)C程序中的main()函数必须放在程序的开头

17.若有定义:

inta=7;

floatx=2.5,y=4.7;

则表达式x+a%3*(int)(x+y)%2/4的值为【A】

A)2.5B)2.75C)3.5D)0

18.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为【C】

A)intB)floatC)doubleD)不确定

19.有输入语句:

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

为使变量a、b分别为5和3,从键盘输入数据的正确形式为【B】

A)53<回车>B)5,3<回车>C)a=5b=3<回车>D)a=5,b=3<回车>

20.定义如下变量和数组:

intj;

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

则下面语句的输出结果是【C】

for(j=2;j>=0;j--)

printf("%2d",x[j][2-j]);

A)159B)147C)753D)369

21.执行下面程序后,a的值是【B】

#defineSQR(x)x*x

voidmain()

{inta=10,k=2,m=1;

a=SQR(k+m);

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

}

A)10B)5C)2D)1

22.以下叙述不正确的是【C】

A)在函数内部定义的变量是局部变量

B)函数中的形式参数是局部变量

C)全局变量的作用范围仅限于其所在的整个文件

D)局部变量的作用范围仅限于本函数

23.设a=3,b=4,c=2,d=1,则表达式“a>b?

a:

c>d?

c:

d”的值为【C】

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

24.有以下程序段:

x=-1;

do

x=x*x;

while(!

x);

执行时,循环体执行的次数为【B】

A)0B)1C)2D)不确定

25.以下不正确的if语句形式是【C】

A)if(x>y&&x!

=y);

B)if(x==y)x+=y;

C)if(x!

=y)scanf("%d",&x)

elsescanf("%d",&y);

D)if(x

26.以下程序的输出结果是【C】

voidmain()

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

if(x

if(y<0)z=0;

elsez+=1;

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

}

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

27.以下能正确计算1×2×3×…×10的程序段是【A】

A)i=1,s=1;B)s=1;i=1;

dowhile(i<=10)

{s=s*i;i++;}s=s*(++i);

while(i<11);

C)for(i=1,s=0;i<=10;i++)D)for(i=1,s=1;;i++)

s=s*i;s=s*i;

28.若j为整型变量,则以下循环执行次数是【C】

for(j=0;j==0;)printf("%d",j--);

A)无限次B)0次C)1次D)2次

29.若有说明:

inta[10];则对a数组元素的正确引用是【C】

A)a[3.5]B)a(8)C)a[6-5]D)a[10]

30.C语言规定,变量做实参时,它和对应形参之间的数据传递方式是【B】

A)地址传递B)单向值传递C)双向值传递D)由用户指定传递方式

31.C中,一个float类型的数据在内存中占用的字节数是【C】

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

32.设有程序段:

intk=5;

while(k<=0)

k--;

则下列描述中正确的是【C】

A)while循环执行5次B)循环是无限循环

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

33.下面程序段的运行结果是【B】

charc[5]={'a','b','\0','c','\0'};

printf(“%s”,c);

A)'a''b'B)abC)AbcD)"abc"

34.以下不正确的字符串赋值语句是【C】

A)char*s;s="abcde";B)chars[]="abcde";

C)chars[10];s="abcde";D)char*s="abcde";

35.设p1、p2是指向int型一维数组的指针变量,k为int型变量,以下错误的语句是【B】

A)k=*p1+*p2;B)p2=k;C)p1=p2;D)k=p2-p1;

36.下面程序的输出结果是【A】

voidmain()

{chars[]="ABCD";

char*p;

for(p=s;p

printf(“%s\n”,p);

}

A)ABCDB)AC)DD)ABCD

BCDBCABC

CDCBAB

DDAA

37.以下关于C函数的定义和调用描述正确的是【B】

A)函数的定义可以嵌套,但函数的调用不可嵌套

B)函数的调用可以嵌套,但函数的定义不可嵌套

C)函数的定义和调用均可以嵌套

D)函数的定义和调用均不可嵌套

38.以下关于变量的作用域说法正确的是【D】

A)在不同函数中不能使用相同名字变量

B)在函数外部定义的变量只在本函数范围内有效

C)在函数内的复合语句定义的变量在本函数内有效

D)形式参数是局部变量

39.以下关于变量的作用域叙述不正确的是【同22,C】

A)在函数内部定义的变量是局部变量

B)函数中的形式参数是局部变量

C)全局变量的作用范围仅限于其所在的文件

D)局部变量的作用范围仅限于本函数

40.以下关于C函数参数说法不正确的是【B】

A)实参可以是常量、变量和表达式

B)形参可以是常量、变量和表达式

C)实参可以为任意数据类型

D)形参应与对应的实参类型一致

41.以下关于C函数返回值的叙述正确的是【D】

A)被调函数中只有使用return语句才能返回主调函数

B)使用一个return语句可以返回多个函数值

C)函数返回值类型取决于return语句中的表达式类型

D)函数返回值类型取决于定义该函数时所指定的类型

42.在C中,“a>b>c”属于哪种表达式?

【A】

A)关系B)赋值C)逻辑D)非法

43.以下不合法的C表达式是【C】

A)10||8B)12==9+1C)++5D)x!

=y

44.给定以下程序段:

intn=10;

while(n>6)

{n--;

printf(“%3d”,n);

}

以上程序段输出结果是【D】

A)1098B)987C)10987D)9876

45.若i,j已定义为int型,则以下程序段中内循环总的执行次数是【C】

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

for(j=1;j<6;j++)

{……}

A)30B)24C)25D)20

46.若已定义:

float*p,m=3.14159;则使p指向m正确的赋值语句是【B】

A)p=m;B)p=&m;C)*p=m;D)*p=&m;

47.若已定义:

chars[10];则下面表达式中不能作为s[1]地址的是【A】

A)s++B)s+1C)&s[0]+1D)&s[1]

48.已知:

inta=3,b=5,t;要将a和b中的数值进行交换,错误的程序段是【C】

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

C.t=a;b=a;a=t;D.t=b;b=a;a=t;

49.关于C程序中的#include,错误的描述是【D】

A.它是C语言的预编译命令B.在程序中该行尾部不需要分号

C.用于将math.h包含进来D.math.h是一个函数

50.下列C程序段的输出结果是【C】

inta=0;

switch(a)

{case0:

printf(“a=0”);

case1:

printf(“a=1”);

default:

printf(“default”);

}

A.a=0B.a=0defaultC.a=0a=1defaultD.default

51.已知:

inta,x,y;有语法错误的C语句是【B】

A.while(x)y++;B.while(x+y=0)a++;

C.while(x

52.对于do…while()语句,错误的说法是【C】

A.用条件控制循环体的重复执行B.循环体至少要执行一次

C.循环体有可能一次也不执行D.循环体中可以包含若干条语句

53.已知:

inta,x,y;有语法错误的C语句是【同51,B】

A.while(x)y++;B.while(x+y=0)a++;

C.while(x

54.已知:

inta[5],*ip=a;利用ip为数组元素a[4]赋值的正确C语句是【B】

A.scanf(“%d”,ip+3);B.scanf(“%d”,ip+4);

C.scanf(“%d”,*(ip+3));D.scanf(“%d”,*(ip+4));

55.对于C语句:

char*a[2]={“abcd”,“ABCD”};叙述正确的是【B】

A.a是指针变量B.a是指针数组C.a是数组指针D.a是字符串

二、填空题

1.函数是C程序的基本构成单位,C程序总是从____main()函数____开始执行的。

2.赋值表达式x*=y+5的另一种书写形式为_____x=x*(y+5)_____。

3.已知a=10,b=20,c=3,则表达式a>b||c的值为__1_______。

4.整数m既能被3整除又能被4整除的逻辑表达式为______m%3==0&&m%4==0____。

5.若有定义:

doublea[10][5];则数组a中行下标最大值为__9__,列下标最大值为__4__。

6.若有定义:

inta[]={1,4,6,5,8,9};则*(a+5)的值为_____9_____。

7.设有如下定义inta[5][6],*p;取数组元素a[4][2]的地址放到p中的语句为____p=&a[4][2]_____。

8.未加特别说明(说明为静态的)的全局变量是外部的,能被其它文件中的函数使用,而在引用它的文件中,需要用关键字____extern_____说明。

9.已知a=10,b=20,则表达式!

a>b的值为_______0____。

10.写出0

11.写出判断字符变量c所存字符是否为字母的逻辑表达式c>=’a’&&c<=’z’||c>=’A’&&c<=’Z’。

12.实现变量a和b交换的语句或语句序列是t=a;a=b;b=t;或a=a+b;b=a-b;a=a-b;。

13.若有定义:

inta[10],*p=a;则元素a[5]的值用p表示的形式是_____*(p+5)_____。

14.若有定义:

int*p[4];则标识符p表示____指针数组名_____。

15.凡是函数中未指定存储类型的局部变量,其默认的存储类型为_____auto_____。

三、程序填空

1.下面程序的功能是:

从键盘输入一个字符,若是大写字母,则转换为小写字母并输出,若为小写字母则直接输出,请在_____处填上合适内容,使程序完整。

include

voidmain()

{charch;

ch=getchar();

if(_____ch>=’A’&&ch<=’Z’__________)

ch+=32;

printf(“%c”,ch);

}

2.下面程序的功能是:

求1~100间的偶数和,请在_____处填上合适内容,使程序完整。

#include

voidmain()

{intnum,sum=0;

for(num=2;num<=100;num=num+2)

________sum+=num________;

printf("1-100间的偶数和是:

%d\n",sum);

}

3.下面程序段是求n!

的递归函数,请将函数补充完整。

doublefac(intn)

{doubleresult;

if(n==1)

result=1;

else

result=____fac(n-1)*n________;

________returnresult_____;

}

4.以下程序的功能是:

输入一整数n,判断是否为素数。

#include

voidmain()

{inti,n;

scanf(“%d”,&n);

for(i=2;__i

if(n%i==0)

break;

if(_____i>=n____)

printf(“%disaprimenumber.\n”,n);

else

printf(“%disnotaprimenumber.\n”,n);

}

5.如下程序实现字符串逆序

#include

#include

voidmain()

{char*p1,*p2,c,s[50];

scanf(“%s”,s);

p1=s;

p2=s+strlen(s)-1;

for(;p1

{

c=*p1;*p1=*p2;*p2=c;

}

printf(“Thenewstringis%s\n”,s);

}

四、阅读程序

1.include

voidmain()

{charch;

intcnt1=0,cnt2=0;

while((ch=getchar())!

='\n')

if(ch>='a'&&ch<='z')cnt1++;

elsecnt2++;

printf("COUNT=%d\n",cnt1);

}

若输入“ThisisaCprogram.”,运行结果:

________COUNT=13_____________

2.#include

voidmain()

{inti,j,temp;

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

for(i=0,j=9;i

{temp=a[i];a[i]=a[j];a[j]=temp;}

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

printf("%2d",a[j]);

}

运行结果:

9876543210

3.#include

#include

voidmain()

{charstr1[]="good",str2[]="morning";

inti,j;

for(i=strlen(str1),j=0;str2[j]!

='\0';i++,j++)

str1[i]=str2[j];

str1[i]='\0';

printf("string1=%s",str1);

}

运行结果:

___string1=goodmorning________________________

4.#include

voidmain()

{inti,j,pos;

floatval,a[10];

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

scanf("%f",&a[i]);

val=a[0];

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

if(a[j]>val)

{val=a[j];pos=j;}

printf("Max=%f,position:

%d",val,pos);

}

本程序的功能是:

___从键盘输入的十个实数中,求出最大数及其位置序号并输出。

5.#include

floataverage(intx[],intn)

{inti;

floatsum=0;

for(i=0;i

sum+=x[i];

return(sum/n);

}

voidmain()

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

floatrst;

rst=average(a,5);

printf("result=%f\n",rst);

}

运行结果:

_____result=6.000000_______________________

6.给定如下程序:

#include

voidmain()

{chargrade;

scanf(“%c”,&grade);

switch(grade)

{case'A':

printf("85—100\n");break;

case'B':

printf("70—84\n");break;

case'C':

printf("60—69\n");break;

case'D':

printf("<60\n");break;

default:

printf("error\n");

}

}

当程序运行时,从键盘输入“b”,输出的结果是:

__70—84_________。

7.给定如下程序:

#include

voidmain()

{inta[5]={2,5,3,7,6},i,j,t;

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

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

if(a[j]>a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

for(i=0;

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

当前位置:首页 > 高等教育 > 文学

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

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