C程序习题集.docx

上传人:b****6 文档编号:7581718 上传时间:2023-01-25 格式:DOCX 页数:64 大小:69.50KB
下载 相关 举报
C程序习题集.docx_第1页
第1页 / 共64页
C程序习题集.docx_第2页
第2页 / 共64页
C程序习题集.docx_第3页
第3页 / 共64页
C程序习题集.docx_第4页
第4页 / 共64页
C程序习题集.docx_第5页
第5页 / 共64页
点击查看更多>>
下载资源
资源描述

C程序习题集.docx

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

C程序习题集.docx

C程序习题集

《程序设计基础》习题集1

一、单项选择题

1、一个C语言程序是由()

①一个主程序和若干子程序组成②函数组成

③若干过程组成④若干子程序组成

2、一个C程序的执行是从()。

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

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

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

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

3、在C语言中(以16位PC机为例)5种基本数据类型的存储空间长度的排列顺序为()

①char

③char

4、下面四个选项中,不合法的用户标识符是()

①P_O②ha2③goto④_ab

5、以下不正确的叙述是()。

①在C程序中,逗号运算符的优先级最低②在C程序中,APH和aph是两个不同的变量

③若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b的值不变

④当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

6、设c是字符变量,以下语句中错误的是()。

①c=’Y’;②c=’\\’;③c=’Yes’;④c=’\x23’;

7、已知ch是字符型变量,下面不正确的赋值语句是()。

①ch=’a+b’;②ch=’\0’;③ch=’7’+’9’;④ch=5+9;

8、判断char型变量c1是否为小写字母的正确表达式是()

①'a'<=c1<='z'②(c1>=a)&&(c1<=z)③98<=c1&&123>=c1④c1>='a'&&c1<='z'

9、下面的表达式正确的是()

①5.0%2②"ab"-'c'③int(5+0.1)④'b'-78

10、表示图中坐标轴上阴影部分的正确表达式是()

x

-1013

①-1<=x&&1<=x||x<=3②(x<=-1)&&(1<=x||x<=3)

③x<=-1||x>=1&&x<=3④!

(-1

(x>3)

11、已知字母A的ASCII码为65,以下程序段的输出结果是()

charc1=’A’,c2=’Y’;

printf(″%d,%d″,c1,c2);

①65,90②A,Y③65,89④输出格式不合法

12、执行以下语句后b的值为()。

inta=5,b=6,w=1,x=2,y=3,z=4;

(a=w>x)&&(b=y>z);

①6②0③1④4

13、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是()。

①inta=b=c=5;②inta,b,c=5;③inta=5,b=5,c=5;④a=b=c=5;

14、设变量a是整型,f是实型,i是双精度型,则表达式10+′a′+i*f值的数据类型为()。

①int②float③double④不确定

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

main()

{intm=5;

if(m++>5)printf(“%d\n”,m);

elseprintf(“%d\n”,m--);

}

①4②5③6④7

16、为了避免在嵌套的条件语句if---else中产生二义性,C语言规定:

else子句总是与()配对。

①缩排位置相同的if②其之前最近的if

③其之后最近的if④同一行上的if

17、以下不正确的语句是()。

①if(x>y);②if(x=y)&&(x!

=0)x+=y;

③if(x!

=y)scanf(“%d”,&x);elsescanf(“%d”,&y);

④if(x

18、C语言中while与do---while语句的主要区别是()

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

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

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

④while的循环控制条件比do---while的循环控制条件严格

19、以下程序段()

x=-1;

do

{x=x*x;}

while(!

x);

①是死循环②循环执行两次③循环执行一次④有语法错误

20、以下的for循环

for(x=0,y=0;(y!

=123)&&(x<4);x++);

①执行3次②执行4次③循环次数不定④是无限循环

21、执行下面语句后,变量I的值是()。

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

①3②4③5④不定

22、设x和y均为int型变量,则执行下面循环后,y的值为()。

for(y=1,x=1;y<=50;y++)

{if(x==10)break;

if(x%2==1)

{x+=5;continue;}

x-=3;

}

①2②4③6④8

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

main()

{intx,y;

scanf(“%d“,&x);

y=x>12?

x+10:

x–12;

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

}

①0②22③12④10

24、以下正确的函数定义形式是()。

①doublefun(intx,inty)②doublefun(intx;inty)

③doublefun(intx,inty);④doublefun(intx,y);

25、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。

①float②int③long④double

26、以下对一维整型数组a的正确说明是()。

①inta(10);②intn=10,a[n];

③intn;④#defineSIZE10

scanf(“%d”,&n);inta[SIZE];

inta[n];

27、若有说明:

inta[10];则对a数组元素的正确引用是()。

①a[10]②a[3.5]③a(5)④a[10-10]

28、以下能对二维数组a进行正确初始化的语句是()。

①inta[2][]={{1,0,1},{5,2,3}};②inta[][3]={{1,2,3},{4,5,6}};

③inta[2][4]={{1,2,3},{4,5},{6}};④inta[][3]={{1,0,1}{},{1,1}};

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

chara[]=“ABCDEF”;charb[]={‘A’,’B’,’C’,’D’,’E’,’F’};

则以下叙述正确的是()。

①a与b数组完全相同②a与b长度相同

③a和b中都存放字符串④a数组比b数组长度长

30、有两个字符数组a、b,则以下正确的输入语句是()。

①gets(a,b);②scanf(“%s%s”,a,b);

③scanf(“%s%s”,&a,&b);④gets(“a”),gets(“b”);

31、变量的指针,其含义是指该变量的()。

①值②地址③名④一个标志

32、若需要建立如图所示的存储结构,且已有说明float*p,m=3.14;则正确的赋值语句是()。

pm

①p=m;②p=&m;③*p=m;④*p=&m;

33、下面程序段的运行结果是()。

char*s=“abcde”;

s+=2;printf(“%d”,s);

①cde②字符’c’③字符’c’的地址④无确定的输出结果

34、若有以下定义,则对a数组元素地址的正确引用是()。

inta[5],*p=a;

①p+5②*a+1③&a+1④&a[0]

35、chara[]=“language”,*p;

p=a;

while(*p!

=‘u’){printf(“%c”,*p–32);p++;}

①LANGUAGE②language③LANG④langUAGE

二、填空题

1、设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为。

2、逗号表达式(a=3*5,a*4),a+15的值为,a的值为。

3、C程序中,每条语句都以结尾。

4、数学表达式:

的C语言表达式为:

;数学表达式:

-

的C语言表达式为:

5、设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是。

6、利用条件运算符将这两条语句“if(a>b)m=a;elsem=b;”转换成与其等价的一条语句是:

7、设y为int型变量,请写出描述“y是奇数”的逻辑表达式。

8、若a=5,b=2,c=1,则表达式a–b

9、若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是,a[2][1]得到的初值是。

10、若自定义函数要求返回一个值,则应在该函数体中有一条语句。

三、判断题(正确的打“√”,错误的打“×”)

1、若有常量定义:

#defineN1,则语句:

N++;是合法的C语句。

()

2、实际上,可以用顺序,分支,循环三种结构构造任何算法.()

3、有字符串常量〃ab123〃,则该字符串在内存中要占用5个字节的单元。

()

4、goto语句可以构成循环。

()

5、有数组:

inta[5]={1,2,3,4,5};则输出数组5个元素可用printf(”%d”,a[5]);()。

6、标识符AP与标识符ap在C语言中代表同一变量。

()

7、若有变量定义:

inta[5],*p,I;则语句:

for(I=1;I<6;I++)scanf(”%d”,p++);可实现给数组a正确赋值。

()

8、continue语句与break语句功能一样,都是退出循环体。

()

9、switch选择结构中必须有default子句。

()

10、数组的下标可以是float数据类型。

()

四、仔细阅读如下程序,按题意填写程序空缺

1、输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。

main()

{charch;

scanf(“%c“,&ch);

if()ch=ch+32;

elseif(ch>=‘a’&&ch<=‘z’);

printf(“%c”,ch);

}

2、下面程序的功能是打印100以内个位数为6且能被3整除的所有数。

#include

main()

{inti,j;

for(i=0;;i++)

{j=i*10+6;

if()continue;

printf(“%d“,j);

}

}

3、输入三个数求最大者。

intmax(intx,inty)

{;

if(x

Max=y;

else

Max=x;

return();

}

main()

{inta,b,c,d;

scanf(“%d,%d,%d”,&a,&b,&c);

d=max(a,);

printf(“%d“,d);

}

4、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,分别输出数组a、b。

main()

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

intb[3][2],i,j;

printf(“arraya:

\n”);

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

{for(j=0;;j++)

{printf(“%5d”,a[i][j]);

;

}

printf(“\n”);

}

printf(“arrayb:

\n”);

for(i=0;;i++)

{for(j=0;j<=1;j++)

printf(“%5d”,b[i][j]);

printf(“\n”);

}

}

五、仔细阅读如下程序,写出运行结果或其实现的功能

main()

{intI;

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

switch(I)

{case0:

printf(“0*”);

case1:

printf(“1*\n”);break;

case2:

printf(“2*\n”);break;

default:

printf(“3*\n”);break;

}

}

运行结果:

2、inta=3,b=5;

max(inta,intb)

{intc;

c=a>b?

a:

b;

return(c);

}

main()

{inta=9;

printf(“%d”,max(a,b));

}

运行结果:

1、

3、main()

{inti,max,a[10];

printf("input10numbers:

\n");

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

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

max=a[0];

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

if(a[i]>max)max=a[i];

printf("maxmum=%d\n",max);

}

该程序的功能是:

六、编程题

1、由键盘输入3个整数a、b、c,然后按由小到大顺序输出。

2、计算1!

+2!

+3!

+…+10!

的值。

3、求数组:

a[2][3]={1,2,3,4,5,6}的转置(即数组a的行列互换后的元素值)。

《程序设计基础》习题集2

一、单选题  

1.在C语言中,合法的字符常数是()

A)‘程序设计’B)“程序设计”

C)cD)‘\\’

2.在C语言中,以下不正确的八进制或不正确的十六进制数是()

A)090B)0xAB

C)0xlaD)-016

3.执行intx=2,y=3;后表达式x=(y==3)的值是()

A)0B)1

C)2D)3

4.在循环结构的循环体中执行break语句,其作用是()

A)结束本次循环,进行下次循环

B)继续执行break语句之后的循环体中各语句

C)跳出该循环体,提前结束循环

D)终止程序运行

5.以下程序运行结果是()

main()

{chars[]=”\’Address\’”;

printf(%d\n”,strlen(s));

}

A)9B)10

C)11D)12

6.以下程序运行结果是()

main()

{inta[]={2,4,6,8,10},y=1,x;

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

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

}

A)17B)18

C)19D)20

7.已定义charx[8];inti;为了给x数组赋值,以下正确的语句是()

A)x[8]=”TurboC”;B)x=”TurboC”;

C)x[]=”TurboC”;D)for(i=0;i<7;i++)x[i]=getchar();

8.设inta[][4]={0,0};则以下错误的描述是()

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

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

C)数组a的行数为1

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

9.以下程序运行结果是()

fun3(intx)

{staticinta=3;

a+=x;

returna;

}

main()

{intk=2,m=1,n;

n=fun3(k);

n=fun3(m);

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

}

A)3B)4

C)6D)9

10.以下四个运算符,按优先级由高到低的排列顺序是()

A)++%+=>B)%++>+=

C)%+=>++D)++%>+=

11.以下不正确的描述是()

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

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

C)函数的形参是局部变量

D)局部变量不能与全局变量同名

12.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为()

A)直接按系统设定的标准方式搜索目录

B)先在源程序所在目录搜索,再按系统设定的标准方式搜索

C)仅仅搜索源程序所在的目录

D)仅仅搜索当前目录

13.C语言的简单数据类型包括()

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

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

14.下列各变量均为整型,选项中不正确的C语言赋值语句是()

A)i+=++i;B)i=j==k;

C)i=j+=i;D)i=j+1=k;

15.数学关系式x≤y≤z可用C语言的表达式表示为()

A)(x<=y)&&(y<=z)B)(x<=y)and(y<=z)

C)(x<=y<=z)D)(x<=y)&(y

16.要使以下程序的输出结果为4,则a和b应满足的条件是()

main()

{ints,t,a,b;

scanf(“%d%d”,&a,&b);

s=t=1;

if(a>0)s+=1;

if(a>b)t=s+t;

else

if(a==b)t=5;

elset=2*s;

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

}

A)a>0并且a

C)a>0并且a>bD)a<0并且a

17.下面程序的输出结果为()

main()

{inti;

for(i=100;i<200;i++)

{

if(i%5==0)continue;

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

break;

}

}

A)100B)101

C)无限循环D)无输出结果

18.下列程序段的运行结果是()

inti=1,a[]={1,5,10,9,13,7};

while(a[i]<=10)a[i++]+=2;

for(i=0;i<6;i++)printf(“%d”,a[i]);

A)271211139B)171211137

C)171211139D)17129137

19.以下语句把字符串“abcde”赋初值给字符数组,不正确的语句是()

A)chars[]=“abcde”;B)chars[]={’a’,’b’,’c’,’d’,’e’,’\0’};

C)chars[]={“abcde”};D)chars[5]=“abcde”;

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

inta[2][3]={1,2,3},i,j;

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

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

{a[i][j]=a[i*j%2][j]+a[i][(i+j)%3];

printf(“%d,”,a[i][j]);

}

A)2,4,6,2,0,8,B)1,2,3,0,0,0,

C)1,2,3,2,0,6,D)2,4,6,2,0,6,

二、填空题  

1.以下程序的功能是:

从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请填空。

main()

{floatx,amax,amin;

scanf(“%f”,&x);

amax=x;

amin=x;

while(【1】)

{if(x>amax)amax=x;

if(【2】)amin=x;

scanf(“%f”,&x);

}

printf(“\namax=%f\namin=%f\n”,amax,amin);

}

2.Fibonacci数列中的头两个数是1和1,从第三个数开始,每个数等于前两个数之和。

下述程序计算此数列的前20个数,且每行输出5个数,请填空。

#include

voidmain()

{intf,f1=1,f2=1;

inti;

printf(“%6d,%6d”,f1,f2);

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

{f=【3】

printf(“%6d”,f);

if(【4】)

printf(“\n”);

f1=f2;

【5】

}

}

3.下面程序的功能是将两个字符串连接起来,请填空。

#include

main()

{chars1[80],s2[40];

inti=0,j=0;

printf(“\nInputstring1:

”);

scanf(“%s”,s1);

printf(“Inputstring2:

”);

scanf(“%s”,s2);

while(s1[i]!

=‘\0’)

i++;

while(s2[j]!

=‘\0’)

【6】;

【7】=‘\0’;

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

}

4.计算1+1/2+1/4+…+1/50的值,并显示出来。

main()

{inti=2;

floatsum=1.0;

while(i<=【8】)

{sum+=1/【9】;

i+=2;

}

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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