C语言习题.docx
- 文档编号:30146169
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:14
- 大小:47.03KB
C语言习题.docx
《C语言习题.docx》由会员分享,可在线阅读,更多相关《C语言习题.docx(14页珍藏版)》请在冰豆网上搜索。
C语言习题
浙江理工大学
C程序设计试题(十三)
一、单选题(每题2分,共20分)
1、若有定义:
intx,y;chara,b,c;并有以下输入数据(此处
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”就不是回文。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)