C语言三分试卷之2.doc

上传人:美** 文档编号:4300447 上传时间:2019-10-16 格式:DOC 页数:9 大小:92.50KB
下载 相关 举报
C语言三分试卷之2.doc_第1页
第1页 / 共9页
C语言三分试卷之2.doc_第2页
第2页 / 共9页
C语言三分试卷之2.doc_第3页
第3页 / 共9页
C语言三分试卷之2.doc_第4页
第4页 / 共9页
C语言三分试卷之2.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、试卷(2)12.3.1 选择题(本大题共40个选项,【1】【40】每个选择项1.5分,共60分)1. 在C语言中,用户能使用的合法标识符是【1】。【1】A)姓名 B)-xyz C)5i D)For2. 执行语句printf( %dn , strlen(abcx41n) );的输出结果是【2】。【2】 A)5 B)7 C)abcA D)abcx413. 在语言中,合法的字符常量是【3】。【3】 A)字 B)A C)ABC D)x414. 语言中简单数据类型包括【4】。【4】 A)整型、实型、字符型 B)整型、实型、逻辑型 C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型5. 在语言中,不

2、合法的实型常量是【5】。【5】 A)-0.123 B)-.123 C)-1.23e-1 D)-123e-3.06. 以下关于语言变量的叙述,错误的是【6】。【6】 A)变量名必须由字母或下划线开头 B)变量按所定义的类型存放数据 C)不同基本类型的变量之间不能混合运算 D)变量的类型确定了变量的取值范围7. 以下整数值中,不正确的八进制或十六进制数是【7】。【7】 A)0x9a B)012 C)-0x3A D)0908. 下列i、j、k均为整型变量,选项中不正确的语言赋值语句是【8】。【8】 A)i+1 = k; B)i = j = k = 1; C)i = j += +k; D)j = i+

3、1 = i+;9. 以下程序的运行结果是【9】。main() int a=1, b=2, c; c = a = b ? a : b ; printf(%dn, c);【9】 A)0 B)1 C)2 D)310. 设E为表达式,以下与do while(E);不等价的语句是【10】。【10】 A)do while(!E=0); B)do while(E0|E0); C)do while(E=0); D)do while(E!=0);11. 设以下程序段中的变量都是int类型,则输出的结果是【11】。 sum=pad=5; pAd=sum+,pAd+,+pAd; printf(%dn,pad);【1

4、1】 A)7 B)6 C)5 D)412. 以下程序的输出结果为【12】。main() int i=59; printf(%5o,%-10d,%xn, i, i, i);【12】 A) 73,59 ,3b B) 073,59 ,0x3b C)00073, 59,3B D)73 , 59,3B13. 以下程序的运行结果是【13】。main() unsigned a = 0x3ef, b; b = a 2; printf(%x,%xn, a, b);【13】 A)3ef,fb B)3ef,fbc C)fbc,3ef D)fbc,fbc14. 以下程序的运行结果是【14】。main() int a,

5、 b, c; a = b = c = 1; if ( a+ | +b ) c+; printf(%d, %d, %dn, a, b, c);【14】 A)2, 1, 2 B)1, 2, 1 C)2, 2, 2 D)2, 2, 115. 以下在定义一维数组a的同时,给a数组所有元素赋初值0,正确的语句是【15】。【15】 A)int a8= 0; B)int a8= 0, 0, 0, 0, 0, 0, 0, 0; C)int a8= ; D)int a8= 0;16. 以下对语言字符数组描述:【16】,是正确的。【16】 A)可以用length函数计算字符数组中字符串的长度 B)使用printf

6、函数整体输出字符数组中的字符串时,遇到字符0结束输出 C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D)字符数组只能存放字符串,不能存放字符17. 有以下程序:main() int c; while ( (c=getchar() != n ) switch(c-2) case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default: putchar(c+2); break; printf(n);当输入:247,程序的输出结果是【17】。【17】 A)689 B)

7、6689 C)66778 D)6688718. 以下程序的输出结果是【18】。#define SUM(y) 1+ymain() int x=2; printf(%dn, SUM(5)*x );【18】 A)10 B)11 C)12 D)1519. 以下程序的输出结果是【19】。main() int i=1, j=3; printf(%d, i+); int i=0; i += j*2; printf(%d,%d, i, j); printf(%d,%d, i, j);【19】 A)1,6,3,1,3 B)1,6,3,2,3 C)1,6,3,6,3 D)1,7,3,2,320. 以下运算符中,优

8、先级最高的运算符是【20】。【20】 A)= B)& C)= D)/21. 以下程序的输出结果是【21】。main() int a=10,b=20; swap(&a, &b); printf(%d,%dn, a, b);swap(int *p, int *q) int t; t=*p; *p=*q; *q=t;【21】 A)10,10 B)20,20 C)10,20 D)20,1022. 以下程序的输出结果是【22】。main() int a,b; for(a=1,b=1;a=20) break; if (b%3=1) b+=3;continue; b-=5; printf(%dn,a);【2

9、2】 A)7 B)8 C)9 D)1023. 以下不能对二维数组a进行正确初始化的语句是:【23】。【23】 A)int a32= 0 ; B)int a 2=1, 2, 3, 4, 5; C)int a32= 1, 2, 3, 4, 5, 6 ; D)int a32= 1, 3, 4, 5 ;24. 若a4= 1, 2, 3, 4, 5, 6, 7, 8, 9 ;,则a数组第一维的大小是【24】。【24】 A)1 B)2 C)3 D)无确定值25. 以下程序的运行结果是:【25】。main() union u_type int i; double x; float f; ; struct s

10、tr_type char str100; union u_type u2; ; printf(%dn, sizeof(struct str_type);【25】 A)100 B)116 C)120 D)20026. 以下对枚举类型进行定义,不正确的是【26】。【26】 A)enum b 1, 2, 3; B)enum a A, B, C; C)enum c D=3, E, F; D)enum d X=0, Y=5, Z=9;27. 若有以下定义和语句,且0i4,0j3,则不能访问a数组中的元素的是【27】。int i, (*p)3, a3= 1, 2, 3, 4, 5, 6, 7, 8, 9,

11、 10, 11, 12 ;p = a;【27】 A)*(*( a+i )+j) B)pij C)(*(p+i)j D)pi+j28. 以下程序的输出结果是【28】。main() printf( %dn, fac(5) );fac(int n) int s; if(n=1) return 1; else return n*fac(n-1);【28】 A)120 B)60 C)6 D)129. 循环语句循环体中执行continue语句,其作用是【29】。【29】 A)立即终止程序运行 B)继续执行continue语句之后的循环体各语句 C)结束本次循环 D)结束本次循环,跳出循环30. 运行以下程

12、序,输出结果是a=5,b=4,则输入数据的形式应该是【30】。main() int a, b; scanf(%d,b=%d, &a, &b); printf(a=%d,b=%dn,a,b);【30】 A)5 4 B)5,4 C)5 b=4 D)5,b=431. 以下程序的输出结果是【31】。main() union example struct int x; int y; in; int a2; e= 0, 0 ; e.a0=1; e.a1=2; printf(%d,%dn,e.in.x,e.in.y);【31】 A)2,1 B)0,0 C)1,2 D)0,132. 以下程序运行后,输出的结果

13、是【32】。func( int a ) static int m=0; m += a; return( m );main() int k=4, p; p=func(k); printf(%d, p); p=func(k); printf(%dn, p);【32】 A)4,4 B)0,4 C)4,8 D)8,833. 标准函数fgets(s, n, f)的功能是【33】。【33】 A)从文件f中读取长度为n的字符串存入指针s所指的内存 B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C)从文件f中读取n个字符串存入指针s所指的内存 D)从文件f中读取长度为n-1的字符串存入指针s

14、所指的内存34. 以下关于指针概念的叙述中,错误的是【34】。【34】 A)一个指针变量只能指向同一类型的变量 B)一个变量的地址称为该变量的指针 C)两个同类型的指针变量可以作加减运算 D)任何指针变量都可以与空指针NULL进行比较35. 执行下列语句组后,*a、*p、*p的值分别为【35】。 int i, a = 0, 1, 2, 3, 4 , *p5; for(i=0; i=0 & chi=1); for(j=i-1; j=0; j-) printf(%d,aj); printf(n);【37】 A)10010 B)01001 C)00110 D)1010038. 设有以下程序:main

15、() char a180, a280, *s1=a1, *s2=a2; gets(s1); gets(s2); if( !strcmp(s1, s2) ) printf(*); else printf(#); printf(%dn, strlen(strcat(s1, s2) );如果从键盘上输入:averaver则输出的结果是【38】。【38】 A)*8 B)#9 C)#8 D)*939. 以下程序运行后,输出的结果是【39】。fun(char *w) char t, *s1, *s2; for(s1=w, s2=w+strlen(s1)-1; s1next) printf(%7d,p-da

16、ta); printf(%7d, (*p).data); C)while( p ) D)while( p != NULL ) printf(%7d,(*p).data); printf(%7d, p-data); p = p-next; p+; 12.3.2 填空题 (本大题共20个空,每个空2分,共40分。请将答案写在答题卡对应栏中,答在试卷上不得分)1. 以下程序从读入的整数数据中统计大于零和小于零整数的个数,用零结束输入。main() int n, i, j; i = j = 0; scanf(%d, &n); while(【1】) if( n 0 ) i+; else【2】; scan

17、f(%d, &n); printf(正数的个数为:%d,负数的个数为:%dn, i, j);2. 以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制的形式输出,请填空。 main() char b16=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F; int c64, i=0, base; long n; printf(enter a number:n); scanf(%ld,&n); printf(enter new base:n); scanf(%d,&base); do ci=【3】; i+; n=n/base; while(n

18、!=0); printf( transmit new base:n ); for(-i; i=0; -i ) printf(%c,b【4】); 3. 以下函数delete(s,i,n)从字符串s中删除第i个字符开始的n个字符。void delete(char s, int i, int n) int j, k, length=0; /* length 用于计算字符串的长度 */ while( slength )【5】; i-; j = i; if( i length ) k=i+n; if( i+n = length) while( k length ) sj+=sk+; sj =【6】; 4

19、. 以下程序求数组a中所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。main() int i, a10, *p=a, sum=0; printf(Enter 10 num:); for(i=0; i10; i+)scanf(%d, &ai); for(i=0; i10; i+) if( isprime( *(p+【7】) ) = 1 ) printf(%d, *(a+i); sum += *(a+i); printf(sum=%dn, sum);isprime(int x) int i; for(i=2; i=x/2; i+) if( x%

20、i=0 ) return 0; return 【8】;5. 以下程序根据n的值打印2n-1行#号。运行后当输入4给变量n时,将打印如下图案: # # # # # # #main() int n, i, j; printf(Enter n:); scanf(%d, &n); for(i=1; i=n; i+) for(j=1; j=2*(n-i); j+) putchar( ); for(j=1; j=【9】; j+) putchar(#); 【10】; for(i=1; i=n-1; i+) for(j=1; j=【11】; j+) putchar(#); printf(n); 6. 输入正整

21、数n,输出对应的中文字符串,其中n999。对应规则: 若百位不为零,则在该百位后写一个“佰”,如356:叁佰伍拾陆; 若十位不为零,则在该拾位后写一个“拾”,如56:伍拾陆; 个位写“零”字的情况,百位、十位、个位均为零,0:零; 拾位写“零”字的情况,百位、个位均不为零,且拾位为零,如308:叁佰零捌。 例如,0:零 1:壹 15:壹拾伍 100:壹佰 308:叁佰零捌main() char *s=零,壹,贰,叁,肆,伍,陆,柒,捌,玖,拾,佰; char str30=; unsigned int n1, n10, n100, num; /* n1为个位,n10为拾位,n100为百位 */

22、scanf(%d, &num); n100 = num/100; n10 = num/10 - n100*10; n1 = num%10; if( n100 != 0 ) strcat(str,sn100); strcat(str,【12】); if( n10 != 0 ) strcat(str,sn10); strcat(str,s10); else if( n100!=0 & n1!=0 )|( n100=0 & n1=0 ) ) strcat(str,s0); if(【13】) strcat( str, sn1 ); puts(str);7.给定一个年、月、日,函数getdays()返回

23、这一年的第几天。闰年的二月有29天,表达式“(year%4 = 0 & year%100 != 0) | (year%400)=0”值为真,即为闰年,其中year表示年号。如以下程序运行时输入:2001 2 5,则输出:2001年2月5日是该年的第36天。struct datetp unsigned year, month, day;unsigned months=0,31,28,31,30,31,30,31,31,30,31,30,31;main() struct datetp d; printf(请输入年 月 日:); scanf(%u%u%u, &d.year, &d.month, 【1

24、4】); if(d.year%4 = 0 & d.year%100 != 0) | (d.year%400)=0) months2 = 29; printf(%d年%d月%d日是该年的第%d天。n,d.year,d.month,d.day,getdays(d);getdays(【15】date ) unsigned days=0, i; for(i=1; idate.month; i+) days +=【16】; days += date.day; return days;8. 某一文件内容为英文,文件名由命令行输入。以下程序对其进行一项英文语法检查:把每个英文句子的第一个字母改为大写。假设每

25、个英文句子可分别由标点符号“.”或“!”或“?”结束,并且每行少于1 000个英文字母。将修改后的结果存入文件C:DATAFIEL1.TXT 中。main( int argc,【17】) FILE *fpr, *fpw; int i, sentence_end=1; char str1000; if( argc 2 ) printf(Please input a file name.n); exit(1); if( (fpr=fopen(argv1, r) = NULL ) printf(Can not open %s.n, argv1); exit(2); if( (fpw=fopen(C:

26、DATAFILE1.TXT, w) = NULL ) printf(Can not open C:DATAFILE1.TXT.n); exit(3); while( !feof(fpr) ) fgets(str, 1000, fpr); for(i=0; i=a & stri=z ) stri=【18】; sentence_end = 0; if( stri=. | stri=! |stri=? ) sentence_end = 1 ; fputs(str,【19】); 【20】; fclose(fpw);参考答案1. 选择题:(每题1.5分) 【1】D 【2】A 【3】D 【4】A 【5】D

27、 【6】C 【7】D 【8】A 【9】D 【10】C 【11】C 【12】A 【13】B 【14】A 【15】A 【16】B 【17】B 【18】B 【19】B 【20】D 【21】D 【22】B 【23】D 【24】C 【25】B 【26】A 【27】D 【28】A 【29】C 【30】D 【31】C 【32】C 【33】B 【34】C 【35】B 【36】D 【37】A 【38】B 【39】B 【40】C2. 填空题:(每题2分,所有答案均区分大小写) 【1】n != 0或n( ) 【2】j+或j = j+1或j += 1( ) 【3】n % base 【4】ci 【5】length+ 【6】0或0 【7】i 【8】1 【9】2*i-1 【10】printf(n)或putchar(n) 【11】2*(n-i)-1 【12】s11 【13】n1!= 0或n1 【14】&d.day 【15】struct datetp 【16】monthsi 【17】char *argv 【18】32或a-A 【19】fpw 【20】fclose(fpr)- 235 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 竞赛试题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。