ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:35.69KB ,
资源ID:7597758      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7597758.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言经典题目.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言经典题目.docx

1、C语言经典题目 得 分一、单选题(每题2分)1、以下叙述错误的是 _ 。A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面*在下面四个运算符中,优先级别最低的是( )。A、 ! B、& C、= = D、= *若执行语句:int b,a = 12, n = 5;表达式 a % = ( b=2 , n %=b ) + 4结果是( )。A、 16 B、 2 C、1 D、 4*有如下输入语句:scanf(“x=%d,y=%d”,&x,&y); 为使变量x的值为1,y的值为2,从键盘输入数据的正确形式

2、是( )。A、12 B、1,2C、x=1,y=2 D、x=1 y=22、设x和y为浮点型变量,则以下 _ _ 语句是正确的赋值语句。A、x=y%2; B、x*x=y; C、x=x+10*y; D、*x=y+2;3、为了避免嵌套的条件分支语句ifelse 的二义性,C语言规定:C程序中的else总是与_ _组成配对关系。A、缩排位置相同的if B、在其之前未配对的ifC、在其之前未配对的最近的if D、同一行上的if4、有以下程序段,while 循环执行的次数是_ _。int k=0;while(k=1) k+;A、执行1次 B、有语法错,不能执行C、执行0次 D、无限次*以下不是无限循环的是(

3、 )。A. for( ; ; x+=i ) ; B. while( l ) x+; C. for(i=10; ; i- ) sum+=i;D. for (y=0,x=1; x+y ; x=i+ ) i=x;*以下程序运行结果是( )。#include #define S(r) r*rvoid main() int i=2; printf(“%dt%dn”,S(i),S(i+1);A、 4 5 B、 2 6 C、 2 4 D、 4 95、对于以下程序段, 运行后i值为 _ 。 int i=0, a=2; switch (a) case 1: i+=1; case 2: i+=2; default

4、: i+=3; A、2 B、5 C、6 D、上述程序有语法错误6、若希望当A的值为奇数时,表达式的值为真,A的值为偶数表达式的值为假。则以下不能满足要求的表达式是_ _。A、A%2= =1 B、!(A%2 = =0) C、!(A%2) D、A%2*C语言中规定,函数返回值的类型是由( )。A、return语句中的表达式的类型决定 B、调用该函数时系统临时决定C、在定义该函数时所指定的函数类型决定 D、调用该函数的函数类型决定7、设变量定义为int a5,*p=a; ,则*p相当于_ _。A、a B、a5 C、a0 D、a+1 8、有下面程序段则 _ 。char *a,b=China; a=b;

5、 printf(%s,a+2);A、编译出错 B、运行后将输出inaC、运行后将输出Ch D、运行后将输出China*下面判断字符串str1是否大于str2,正确的表达式是( )。A、if ( str1str2) B、if (strcmp (str1,str2) C、if (strcmp (str1,str2)0) D、if (strcmp (str2,str1)0)9、若在主函数中有数组定义int a10,并有函数调用f(a),则下列关于函数f的原型声明,错误的是_ _。A、 void f(int x10); B、 void f(int x );C、 void f(int x); D、 vo

6、id f(int *x);10、调用一个带参数的函数时,以下正确的说法是 _ 。A、实参变量和与其对应的形参变量各占用独立的存储单元B、实参变量和与其对应的形参变量共占用一个存储单元C、只有当实参变量和与其对应的形参变量同名时才共用存储单元D、形参变量是虚拟的,不占用存储单元*设有语句 int array23; ,下面几种引用下标为i和j的数组元素的表示方法,不正确的是( )。A、 *( arrayi + j ) B、*(*( array + i ) + j )C、 *( array + i*3 + j ) D、 arrayij11、有变量定义如下:int a23,*p, (*q)3;以下赋值

7、语句中错误的是 _。A、p=a; B、q=a; C、p=*a+1 ;D、q=a+1; *假设已定义char a10; char *p; 下面的赋值语句中,正确的是( )。A、p = a; B、a = ”abcdef”;C、*p = ”abcdef”; D、p = *a;*设有下列语句,int n = 0, *p = &n, *q = &p; 则下面( )是正确的赋值语句。A、p = 1; B、*p = 2; C、 q = p; D、*q = 5;12、已知struct sk int a; float b;data,*p;若有p=&data,则对data中的成员a的正确引用是 _ 。A、(*p)

8、.data B、(*p).a C、p-data.a D、p.data.a*下面关于静态局部变量的描述,不正确的是( )。A、静态局部变量存储在静态存储区 B、静态局部变量全局可见 C、静态局部变量还是局部可见 D、静态局部变量只会被初始化一次13、以下一维数组定义及初始化正确的是 _ 。A、int a ; B、int a=1,2,3;C、int a3=1,2,3,4 D、int a3=,2,;14、下面对数组array进行正确初始化的是_ _。A、int array23=1,2,1,2,1,2; B、int array2=1,2,1,2;C、int array3=1,2,3,4,5,6; D、

9、int array23=1,2, ,2,; *strlen(”012abxabbcdn”)的值为( )。A、9 B、10 C、11 D、1315、当已存在一个read.txt文件时,执行函数fopen(read.txt,r+)的功能是_ _。A、打开read.txt文件,清除原有的内容B、打开read.txt文件,只能写入新的内容C、打开read.txt文件,只能读取原有内容D、打开read.txt文件,可以读取和写入新的内容*使用fopen函数打开一个新的二进制文件,要求可以进行读和写,那么打开方式是( )。A、”w+” B、”rb+” C、”wb+” D、”ab”得 分二、填空题(每空1分

10、)1、C语言源程序中整型常量可以用十六进制数表示,此时必须以 (1) 为前缀。* C语言源程序文件的后缀是 (1) ,头文件的后缀是 (2) 。* printf()函数表示输出一个字符的格式转换说明符为 (3) ,表示输出字符串的格式转换说明符为 (4) 。* C语言中,表示函数返回的关键字是 (5) ,表示程序中止、强制返回操作系统的库函数是 (6) 。* C语言的宏定义指令是 (7) ,取消宏定义的指令是 (8) 。2、表达式sizeof(ABbCDEFrGHn)的结果是 (2) 。3、若有定义:int a=2,b=3,c=4;则接着执行完语句: a*=16+(b+)-(+c);后,a的值

11、是 (3) ,b的值是 (4) ,c的值是 (5) 。4、 (6) 语句用于循环体中可以提前结束本次循环体的执行,进入下一次循环条件的判断。5、在函数体内声明一个静态局部变量,需要使用的关键字是 (7) 。* 定义含3个整型指针元素的指针数组arr的语句是 (9) ,返回整型指针值的无参函数fun的函数原型是 (10) 。6、设有说明语句int *ptr4,那么ptr是 (8) 。7、单链表的结点类型定义为:struct NODE int data; struct NODE * next;head,*p,*q;在单链表中,如果指针p指向链表中间的某一个结点处,指针q指向其后继结点处,则删除q结

12、点需要用两条语句实现,依次是: (9) 和free(q);8、终端输入1个字符的函数getchar()的等效文件输入函数(即以stdin为形参)是 _ (10) _ 。得 分三、程序阅读题(每题5分)1、写出下面程序的输出结果_。 #include int main( ) int a; for(a=0;a7;a+) if(a%2) printf($); else continue; printf(#); return 0; 2、写出下面程序的输出结果_。#include int a=5; void p1( ) printf(%d ,a=a*a); void p2( ) static int a

13、=3; printf(%d ,a=a*a*a); int main( ) printf(%d ,a); p1( ); a= a-5; printf(%d ,a); p2( ); printf(%dn,a); return 0; 3、写出下面程序的输出结果_。#includeint fun( int n) int ret; if ( n = 1 ) ret = 2;else if ( n = 2 ) ret = 3; else ret = 2+ fun(n-2); return ret;int main() printf(%dn, fun(5); return 0;*以下程序的执行结果是_(3)

14、_。#includevoid main( ) int x=1,y=2,z=0; switch(x) case 0: printf(“”); case 1: switch(y) case 1: printf(“”); break; case 2: printf(“!”); break; case 3: switch(z) case 0: printf(“*”); break; case 1: printf(“#”); break; default : printf(“$”); break; break;default : printf(“&”); 4、写出下面程序的输出结果_。#include

15、typedef struct stint x,y;ST;ST data2=1,100,2,200;int main() ST *p=data; printf(%d ,p-y); printf(%dn,(+p)-x);return 0;5、写出下面程序的输出结果_。 #include#includeint main( ) char *p; char color110= red,color210= grey; p=color1; p+; strcat(p,color2); printf(%sn,p); return 0; 得 分四、程序填空题(每空2分)1、下面是以下三角形式输出九九乘法表的程序,

16、在画线的位置填上适当的语句,使该程序完整。#includeint main( ) int i,j ; for(i=1; _;i+) for(_;j=i;j+) printf(%d*%d=%d ,i,j, _); printf(_); return 0;*产生1万个1100之间的随机整数,将每个值产生的次数统计到数组create中,例如:create30=98,则表示在1万个随机整数中有98次产生的是30。最后打印数组create的元素从create1至create100。#include (1) void main() int create101=0; int i,r; srand(time(

17、NULL); for (i=1;i=10000;i+) r= (2) ; + (3) ; for (i=1;i=100;i+) printf(%5d,createi); printf(n);2、完成以下程序,该程序的功能是对N个初始的字符串用选择法进行由小到大的排序,函数sort完成排序功能,最后输出排序后的各字符串。#include#include#define N 6void sort(char (*a)10,int n) int i,j,k; char t10; for (i=0;in-1;i+) k=i; for (j=i+1;jn;j+) if (strcmp(aj,ak)0) _

18、_; if (i!=k) strcpy(t,ai); _; strcpy(ak,t); int main() int i; char strN10=red,black,pink,yellow,green,white; _; /调用sort进行字符串排序 for (i=0;iN;i+) /输出排序后的各字符串 puts(stri); return 0;*下列函数实现统计字符串string中字符letter出现的次数,并将次数返回。int charCount(const char *string, char letter ) int i=0,count = 0; while (stringi) i

19、f ( (4) = = letter) (5) ; (6) ; return count;3、完成以下程序,该程序的功能是将一个名为old.txt的文本文件拷贝到一个名为new.txt的新文本文件中。#includeint main( ) int c; FILE *fp1,*fp2; fp1=fopen(old.txt,_); fp2=fopen(new.txt,w); c=fgetc(fp1); while(_) _; c=fgetc(fp1); fclose(fp1); fclose(fp2); return 0;得 分五、编程题(15分)编写一个程序,要求: 在main( )函数中定义一

20、维整型数组arr,调用input函数完成数组的n个元素的输入(n30),再调用OddNum函数得到数组中的奇数个数并输出此值,最后用Output函数将数组中所有的奇数输出。 输入函数的原型为:void input(int array ,int n); 完成数组array中n个元素的输入。 求奇数元素个数的函数原型为:int OddNum (int array ,int n); 完成求数组中的奇数元素个数并返回。输出函数的原型为:void Output(int array ,int n); 完成输出数组array中所有的奇数元素。参考#includevoid input(int array ,i

21、nt n);int OddNum (int array ,int n);void output(int array ,int n);int main() int arr30,n; do printf(please input n:n); scanf(%d,&n); while (n30); printf(please input %d elements:n,n); input(arr,n); printf(odd number is:%dn,OddNum(arr,n); printf(all odd elements:n); output(arr,n); return 0;void input

22、(int array ,int n) int i; for (i=0;in;i+) scanf(%d,&arrayi);int OddNum (int array ,int n) int i,s=0; for (i=0;in;i+) if (arrayi%2) s+=1; return s;void output(int array ,int n) int i; for (i=0;in;i+) if (arrayi%2) printf(%d ,arrayi); printf(n); *编写一个计算给定数值范围内素数的程序。要求: 在main()函数中任意输入两个正整数a,b表示求解素数的实际范

23、围a,b,并用程序代码保证b的值大于a的值;调用prime函数求得该范围内所有的素数,并在主函数中输出素数的个数。 定义函数prime,求得一定范围内所有的素数并在屏幕显示这些素数,函数原型为:int prime( int start , int end );其中的两个形式参数表示求解素数的范围是start , end,函数的返回值为这一段范围内素数的个数。#include #includeint primelnt(int m);int prime( int start , int end );int main( ) int a=0,b=0; while(b=a) printf(please

24、input start and endn); scanf(%d%d,&a,&b); prime(a,b); return 0; int prime( int start , int end ) int i,count=0; for (i =start ; i=end; i+) if (primelnt(i) printf(%5d , i) ; count+ ; if (count%5=0 ) printf(n); printf(n); int primelnt(int m) int i,k; if (m=1) return 0; k= (int)sqrt(m) ; for (i=2; i=k;

25、 i+) if(m%i =0) return 0; return 1;*编写程序将一个名为old.txt的文本文件依次读出,数字字符在屏幕上显示,字母字符全部转换成大写字母存放到一个名为new.txt的新文本文件中。 例如:old.txt中的内容是:aB*cdeF123gH4567 屏幕输出:1234567 new.txt中的内容是:ABCDEFGH#include#include#includeint main( )char ch;FILE *infile=old.txt ,*outfile=new.txt;if(infile=fopen( infile,r)=NULL) printf(cannot open old.txt n); exit(0);if(outfile=fopen(outfile,w)=NULL) printf(cannot open new.txt n); exit(0);while(ch=fgetc(infile)!=EOF) if (ch=0 & ch =A & ch =a & ch =z) ch-=32; fputc(ch,outfile); fclose(infile);fclose(outfile);return 0;

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

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