C语言习题.docx

上传人:b****8 文档编号:30146169 上传时间:2023-08-05 格式:DOCX 页数:14 大小:47.03KB
下载 相关 举报
C语言习题.docx_第1页
第1页 / 共14页
C语言习题.docx_第2页
第2页 / 共14页
C语言习题.docx_第3页
第3页 / 共14页
C语言习题.docx_第4页
第4页 / 共14页
C语言习题.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言习题.docx

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

C语言习题.docx

C语言习题

浙江理工大学

C程序设计试题(十三)

一、单选题(每题2分,共20分)

1、若有定义:

intx,y;chara,b,c;并有以下输入数据(此处代表换行符,u代表空格):

1u2

AuBuC

则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是:

_

(1)__

[A]scanf(“x=%dy=%d”,&x,&y);a=getchar();b=getchar();c=getchar();

[B]scanf(“%d%d”,&x,&y);a=getchar();b=getchar();c=getchar();

[C]scanf(“%d%d%c%c%c”,&x,&y,&a,&b,&c);

[D]scanf(“%d%d%c%c%c%c%c%c”,&x,&y,&a,&a,&b,&b,&c,&c);

2、若有以下定义和语句:

doubler=99,*p=&r;*p=r;则以下正确的叙述是:

(2)

[A]以上两处的*p含义相同,都说明给指针变量p赋值

[B]在“doubler=99,*p=&r;”中,把r的地址赋值给了p所指的存储单元

[C]语句“*p=r;”把变量r的值赋给指针变量p

[D]语句“*p=r;”取变量r的值放回r中

3、以下说法正确的是:

(3)

[A]输入项可以是一个实型常量,如:

scanf(“%f”,3.5);

[B]只有格式控制,没有输入项,也能正确输入数据到内存,例如:

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

[C]当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:

scanf(“%4.2f”,&d);

[D]当输入数据时,必须指明变量地址,例如:

scanf(“%f”,&f);

4、以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为:

(4)

[A]5[B]6[C]7[D]8

#include

intfunc(charstr[])

{intnum=0;

while(*(str+num)!

='\0')

num++;

return(num);

}

voidmain()

{charstr[10],*p=str;

gets(p);

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

}

5、若有以下定义:

chara;intb;floatc;doubled;则表达式a*b/d-c值的类型为:

(5)

[A]float[B]int[C]double[D]char

6、下列可作为C语言赋值语句的是:

(6)

[A]x=3,y=5[B]a=b=6

[C]i--;[D]y=int(x);

7、给出以下定义:

charx[]=“abcdefg”;chary[]={'a','b','c','d','e','f','g'};则正确的叙述为:

(7)

[A]数组x和数组y等价

[B]数组x和数组y的长度相同

[C]数组x的长度大于数组y的长度

[D]数组x的长度小于数组y的长度

8、以下叙述中不正确的是:

(8)

[A]在不同的函数中可以使用相同名字的变量

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

[C]在一个函数内定义的变量只在本函数范围内有效

[D]在一个函数内的复合语句中定义的变量在本函数范围内有效

9、设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是:

(9)

[A]k=P1-P2;[B]P2=k;[C]P1=P2;[D]k=*P1*(*P2);

10、非法的转义字符是:

(10)

[A]‘\t’[B]‘\018’[C]‘\n’[D]‘\xaa’

二、程序填空题(阅读以下程序说明和相应程序,将空格补充完整。

每小题2分,共30分)

1、【程序说明】打印数字金字塔,金字塔层数由用户输入控制(1~9层)。

要求金字塔最下面一行的第一个字符紧贴屏幕左侧输出。

如输入6,则输出的金字塔如下图。

运行示例:

【程序代码】

#include

voidmain(){

inti,j,n;

printf("输入金字塔层数:

\n");

scanf("%d",&n);

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

for(j=1;(11);j++)

(12);

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

printf("%d",i);

(14);

}

}

【选项】

(11)

[A]j<=n

[C]j<=n-i

[B]j<=n-1

[D]j

(12)

[A]printf("");

[C]printf("\t");

[B]printf("\n");

[D]printf("\b");

(13)

[A]j<=2*i-1

[C]j<2*i-2

[B]j<=2*i-2

[D]j<=2*i

(14)

[A]printf("");

[C]printf("\t");

[B]printf("\n");

[D]printf("\b");

2、【程序说明】随机产生20个100~300之间的整数,选出其中能被3或能被5整除的数,并把它们从小到大排序后按每行5个数输出。

运行示例:

【程序代码】

#include

#include

#include

voidmain(){

inti,j,k,a[20],b[20],temp, (15) ;

srand(time(NULL));

printf("原始数据:

\n");

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

a[i]=rand()%201+100;

if((16)){

n=n+1;

b[n]=a[i];

}

if(i%5==0)printf("\n");

printf("%-5d",a[i]);

}

printf("\n上述数据中能被3或5整除的数从小到大排序后:

\n");

for(i=0;i

k=i;

for(j=i+1;j

if((17) )

  (18)  ;

}

if(k!

=i){

temp=b[k];

b[k]=b[i];

b[i]=temp;

}

}

for(i=0;i

if(i%5==0)printf("\n");

printf("%-5d",b[i]);

}

printf("\n");

}

【选项】

(15)

[A]n

[C]n=1

[B]n=0

[D]n=-1

(16)

[A]a[i]%3==0||a[i]%5==0

[C]a[i]%3=0&&a[i]%5=0 

[B]a[i]%3==0&&a[i]%5==0

[D]a[i]%3=0||a[i]%5=0

(17)

[A]b[k]>b[i]

[C]b[k]>b[j]

[B]b[k]

[D]b[i]>b[j]

(18)

[A]k=j   

[C]i=j

[B]k=i 

[D]j=k

3、【程序说明】从输入的字符串中找出特定的字符(由用户输入),并统一替换成另一个字符(也由用户输入)。

运行示例:

【程序代码】

#include

#include

voidmain(){

inti;

charx,y,a[100];

printf("请输入一个句子(不超过80个字母):

\n");

gets((19));

printf("请输入一个欲被替换的字母:

\n");

(20);

getchar();

printf("输入一个欲替换成的字母:

\n");

scanf("%c",&y);

for(i=0;(21);i++)

if((22))a[i]=y;

printf("上述句子中的字母%c被替换成字母%c后:

\n",x,y);

(23)

}

【选项】

(19)

[A]a[]

[C]a()

[B]a[100]

[D]a

(20)

[A]getchar(x);

[C]x=getchar();

[B]scanf(“%s”,x);

[D]scanf(“%c”,x)

(21)

[A]a[i]!

=\0

[C]i

[B]i

[D]a[i]!

=’\0’

(22)

[A]a[i]!

=x

[C]a[i]==x

[B]a[i]=x

[D]a[i]!

=’\0’

(23)

[A] printf(“%s\n”,a[100]);

[C]putchar(a);

[B]printf(“%c”,a);

[D]puts(a);

4、【程序说明】输入三个整数,按由小到大的顺序输出这三个数。

【程序代码】

#include

voidswap((24))

{

inttemp;

temp=*pa;

*pa=*pb;

*pb=temp;

}

voidmain()

{

inta,b,c,temp;

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

if(a>b)

swap(&a,&b);

if(a>c)

swap(&a,&c);

if(b>c)

swap(&b,&c);

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

}

【选项】

(24)

[A]int*pa,*pb

[C]double*pa,*pb

[B]int*pa,int*pb

[D]double*pa,double*pb

5、【程序说明】将两个字符串连接起来。

【程序代码】

#include

voidmain()

{chars1[80],s2[40];

inti=0,j=0;

printf("\nInputthefirststring:

");

scanf("%s",s1);

printf("\nInputthesecondstring:

");

scanf("%s",s2);

while(s1[i]!

='\0')

i++;

while(s2[j]!

='\0')

(25);

s1[i]='\0';

printf("\nNewstring:

%s",s1);

}

【选项】

(25)[A]s1[i]=s2[j][B]s1[i++]=s2[j++][C]s1[i]=s2[j++][D]s1[i++]=s2[j]

三、程序阅读题(阅读下列程序,写出运行结果,每小题2分,共20分)

1、【程序代码】

#include

intstring_length(chars[])

{inti=0;

while(s[i]!

='\0')

i++;

returni;

}

voidmain()

{charstring1[]="testing";

charstring2[]={'t','e','s','t','\0'};

intj=0;

j=string_length(string1);

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

j=string_length(string2);

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

}

【选项】

(26)程序运行时,第二行输出________(26)_________

[A]6[B]7[C]8[D]9

(27)程序运行时,第四行输出_______(27)_________

[A]4[B]5[C]6[D]7

2、【程序代码】

#include

#include

voidmain()

{intn,s=0;

scanf("%d",&n);

n=abs(n);

while(n!

=0){

s=s+n%10;

n=n/10;

}

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

}

【选项】

(28)程序运行时,若输入1234,则输出____(28)_____

[A]123[B]12[C]1[D]10

(29)程序运行时,若输入-1280,则输出____(29)_____

[A]11[B]-128[C]-12[D]–1

3、【程序代码】

#include

voidmain()

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

inty,z,*p=&a[1];

y=(*--p)++;

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

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

}

【选项】

(30)程序运行时,第一行输出______(30)__________

[A]5[B]8[C]7[D]6

(31)程序运行时,第二行输出______(31)__________

[A]7[B]6[C]2[D]10

4、【程序代码】

#include

#include

#defineformat1"%d,%d\n"

#defineformat2"%d,%d"

voidmain(){

inta,b,x,y;

intf1(int,int),f2(int*,int*);

scanf(format2,&a,&b);

x=f1(a,b);

printf(format1,a,x);

y=f2(&a,&b);

printf(format1,a,y);

}

intf1(inta,intb){

staticintx;

inty=0;

x=x+a+b;

y=y+x--;

printf(format1,x,y);

returny;

}

intf2(int*a,int*b){

intx=0,*y=(int*)malloc(sizeof(y));

*y=*a;

*a=*b;

*b=*y;

x=x+(*a)++;

printf(format1,x,*y);

returnx;

}

【选项】

程序运行时,输入2,3(回车),

(32)第一行输出___(32)_______

[A]不确定值,不确定值[B]5,5

[C]4,5[D]4,4

(33)第二行输出_____(33)_______

[A]2,5[B]5,5

[C]4,5[D]4,4

(34)第三行输出_____(34)_______

[A]4,3[B]4,2[C]3,2[D]3,3

(35)第四行输出_____(35)_______

[A]3,3[B]5,5[C]3,3[D]4,3

四、程序设计题(本题共30分,每小题10分)

1、商场搞购物优惠活动,消费不同的额度,给予不同的折扣(见下表)。

编写程序,为顾客计算实际的消费金额。

消费额

<300元(不含300)

300~500元(不含500)

500~1000元(不含1000)

1000元以上

折扣率

95折

85折

8折

7折

 

2、a为一个整数,若a2=XXa成立(XX表示任意数),则称a为“守形数”。

例如52=25,252=625

则5和25为守形数。

编写判断守形数的函数f1,参数为一个正整数。

主函数利用该函数查找1到1000内的所有守形数。

并把这些数写入文件e:

\abc.txt。

 

3、输入一个字符串,判断该字符串是否为回文。

如“abccba”、“coloc”等为回文,“youaresokind”就不是回文。

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

当前位置:首页 > 工作范文 > 其它

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

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