收藏 分销(赏)

c语言试题及答案.pdf

上传人:快乐****生活 文档编号:2085458 上传时间:2024-05-15 格式:PDF 页数:22 大小:156.24KB
下载 相关 举报
c语言试题及答案.pdf_第1页
第1页 / 共22页
c语言试题及答案.pdf_第2页
第2页 / 共22页
c语言试题及答案.pdf_第3页
第3页 / 共22页
c语言试题及答案.pdf_第4页
第4页 / 共22页
c语言试题及答案.pdf_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、第 1 页CC 语言语言课程综合复习资料课程综合复习资料一、单选题一、单选题1.在 C 语言中,字符型数据在内存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII 码2.在 C 语言中,十进制数 47 可等价地表示为A)2f B)02f C)57 D)057 3.设有定义:int x=12,n=5;则表达式 x%=(n%2)的值为 A)0 B)1 C)2 D)34.设有定义语句:char str20=,Beijing,中国石油大学,*p=str;则 printf(%dn,strlen(p+20);输出结果是A)10 B)6 C)0 D)205.已定义以下函数:fun(int*p)re

2、turn*p;该函数的返回值是 A)不确定的值 B)形参 p 所指存储单元中的值C)形参 p 中存放的值 D)形参 p 的地址值6.C 语言中,函数返回值的类型是由A)return 语句中的表达式类型决定B)调用函数的主调函数类型决定C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定7.有以下函数定义:void fun(int n,double x)若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是 A)fun(int y,double m);B)k=fun(10,12.5);C)fun(10,12.5);D)void fun(10,12.5);8.以下选项

3、中不能正确赋值的是A)char b=H,e,l,l,o,!;B)char b10;b=Hello!;第 2 页C)char b10=Hello!;D)char *str=Hello!;9.若有以下定义:char s20=programming,*ps=s;则不能代表字符 g 的表达式是A)ps+3 B)s3 C)ps3 D)ps+=3,*ps10.当对两个字符串进行比较时,应该使用的函数是A)strcat B)strcmp C)strcpy D)strlen11.若 i 为整型变量,则以下循环的次数是for(i=2;i=0;)printf(“%d”,i-);A)无限次 B)0 次 C)1 次

4、D)2 次12.以下关于数组的描述正确的是A)数组大小固定,但是可以有不同类型的数组元素B)数组大小可变,但是所有数组元素的类型必须相同C)数组大小固定,所有元素的类型必须相同D)数组大小可变,可以有不同类型的数组元素13.以下能正确定义数组并正确赋初值的语句是 A)int N=5,bNN;B)int a12=1,3;C)int c2=1,2,3,4;D)int d32=1,2,34;14.设有定义 int a=1,5,7,9,11,13,*p=a+3;则*(p-2),*(a+4)的值是A)5 11 B)1 9 C)5 9 D)有错误15.已知 char b5,*p=b;,则正确的赋值语句是A

5、)b=“abcd”;B)*b=“abcd”;C)p=“abcd”;D)*p=“abcd”;16.用数组名作为函数调用时的实参,则实际传递给形参的是A)数组的第一个元素值 B)数组中全部元素值C)数组的首地址 D)数组的元素个数17.以下叙述中不正确的是A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效18.当对两个字符串进行比较时,应该使用的函数是第 3 页A)strcat B)strcmp C)strcpy D)strlen19.有如下定义:long m;char c;f

6、loat x;double y;则表达式 c+m*x/y 的值的类型是A)long B)char C)float D)double20.假设已定义 char c8=test;int i;则下面的输出函数调用中错误的是A)printf(%s,c);B)for(i=0;i8;i+)printf(%c,ci);C)puts(c)D)for(i=0;i8;i+)puts(ci);21.若有以下定义:char s20=programming,*ps=s;则不能代表字符 g 的表达式是A)ps+3 B)s3 C)ps3 D)ps+=3,*ps22.以下选项中不能正确赋值的是A)char b=H,e,l,l

7、,o,!;B)char b10;b=Hello!;C)char b10=Hello!;D)char *str=Hello!;23.有以下函数定义:void fun(int n,double x)若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是_。A)fun(int y,double m);B)k=fun(10,12.5);C)fun(10,12.5);D)void fun(10,12.5);24从变量的作用域来分,可分为全局变量和局部变量,形参是A)局部变量 B)全局变量 C)静态变量 D)动态变量二、读程序,写出程序的执行结果二、读程序,写出程序的执行结果1.#inc

8、lude void main()int x=1,2,3;int s,i,*p=x;s=1;第 4 页 for(i=0;i3;i+)s*=*(p+i);printf(“%dn”,s);答案 62#include char fun(char*s)if(*s=a&*s=z)*s=*s-32;return*s;void main()char a20=Welcome,*p,ch;for(p=a;*p!=0;p+)ch=fun(p);putchar(ch);答案 WELCOME3#include void main()int x=26587,x1,r,sum=0;x1=x;while(x0)r=x%10;

9、sum+=r;x/=10;printf(Sum of the digits in%d is%d,x1,sum);第 5 页答案 Sum of the digits in 26587 is 284#include int fun(int x)int y=1;static int z=4;z+=1;+y;return(x+y+z);void main()int i;for(i=1;i=3;i+)printf(%3d,fun(i);8 10 125#include void main()int x=3,y=4;int j;for(j=1;y0;y-)j=j*x;printf(“j=%dn”,j);运

10、行结果:j=816#include void main()int x,y;for(y=1,x=1;y=8)break;if(x%2=1)x+=5;continue;x-=3;第 6 页 printf(x=%d,y=%dn,x,y);运行结果:x=8,y=47#include void main()char x=language;char*ptr=x;while(*ptr)printf(%cn,*ptr-32);ptr+;运行结果:LANGUAGE8.#include void main()int x=5,6,7;int s=1,i,*p=x;for(i=0;i3;i+)s*=*(p+i);pr

11、intf(“%dn”,s);第 7 页运行结果:2109#include int fun(int x)return(x0?x:-x);void main()int a=12;printf(“%d,%dn”,a,fun(a);运行结果:12,1210#include void ex()static int x=3;-x;printf(“%d”,x);void main()ex();ex();运行结果:2111.#include void main()int i=0,a=0;while(i20)for(;)if(i%10)=0)break;else i-;i+=11;a+=i;第 8 页print

12、f(%dn,a);3212#include void main()int a34=1,2,3,4,9,7,10,6,-1,8,-5,5;int i,j,row=0,colum=0,max;max=a00;for(i=0;i=2;i+)for(j=0;jmax)max=aij;row=i;colum=j;printf(max=%d,row=%d,colum=%d,max,row,colum);max=10,row=1,colum=213.#include int f(int b,int m,int n)int i,s=0;for(i=m;in;i+=2)s+=bi;return s;void m

13、ain()int x,a=1,2,3,4,5,6,7,8,9,10;x=f(a,3,8);printf(%dn,x);第 9 页1814#include void swap(int b)int*p,*p1,*p2;p1=&b0;p2=&b1;p=p1;p1=p1+1;p2=p;void main()int a=5,9;printf(%d,%dn,*a,*(a+1);swap(a);printf(%d,%dn,a0,a1);5,915.#include int b=3;int fun(int*a)b+=*a;return(b);void main()int a=2,b=2;b+=fun(&a);

14、printf(“%dn”,b);716.#include void main()int a10,*p,*s,i;for(i=0;i10;i+)scanf(%d”,a+i);第 10 页 for(p=a,s=a;p-a*s)s=p;printf(“max=%d,index=%dn”,*s,s-a);简述上列程序完成的功能:查找数组中最大值并记录元素下标17#include void main()int x,y;for(y=1,x=1;y=8)break;if(x%2=1)x+=5;continue;x-=3;printf(“x=%d,y=%dn”,x,y);运行结果:x=8,y=418#incl

15、ude#define N 3void zz(int xNN)int i,j,t;for(i=0;iN;i+)for(j=0;ji;j+)t=xij;xij=xji;xji=t;void main()int strNN=1,2,3,4,5,6,7,8,9,i,j;zz(str);for(i=0;iN;i+)for(j=0;jN;j+)printf(“%3d”,strij);printf(n);第 11 页运行结果:1 4 7 2 5 83 6 919#include void main()char a20=abcXYZ,c;int i,j;j=strlen(a)-1;for(i=0;ji;i+,

16、j-)c=*(a+i);*(a+i)=*(a+j);*(a+j)=c;puts(a);运行结果:ZXYcba20#include int a=100,b=200;void f()printf(“%d,%dn”,a,b);a=1;b=2;void main()int a=5,b=7;f();printf(“%d,%dn”,a,b);运行结果:5,721#include int d=1;int fun(int p)static int d=3;d+=p;printf(%3d,d);第 12 页 return(d);void main()printf(%3dn,fun(2+fun(d);运行结果:5

17、,12,1222#include void main()char x=123456789,*p=x;int i=0;while(*p)if(i%2=0)*p=*;p+;i+;puts(x);运行结果:*2*4*6*8*三、编程题1编程输入实数 x,计算下面函数的值,并输出 y 值。x 2 x 105x程序结果:#include void main()int x,y;第 13 页 scanf(“%d”,&x);if(x=1&x=10)y=3*x-1;else y=x/5;printf(“x=%d,y=%dn”,x,y);2编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字

18、符的个数,并输出统计结果。程序结果:#include#includevoid main()/*主函数*/char c;/*定义变量*/int m=0,n=0,a=0,b=0;printf(请输入任意字符串.n);/*输入提示部分,提示输入*/while(c=getchar()!=n)/*循环语句,将由键盘输入的非n字符赋值给 c*/if(c=65&c=97&c=48&c=57)/*第三个选择语句,统计数字字符的个数*/第 14 页 a=a+1;else /*统计其他字符的个数*/b=b+1;printf(%d%d%d%d,m,a,n,b);/*输出最后统计结果*/getch();/*输出结果后

19、屏幕停留*/3.编写打印如下图形的程序(必须用循环语句实现)*程序结果:#include main()int n,i,j;printf(“n=%dn”);scanf(“%d”,&n);for(i=0;in;i+)for(j=0;jn-1-i;j+)Printf(“”);for(j=0;ji+1;j+)Printf(“*”);printf(“n”);4.编写程序,从键盘上任意输入 20 个整数,存入一个数组中,然后输出这些数中最大数及其下标以及最小数及其下标第 15 页程序结果:#include void main()int a20,i,max,min,num1,num2;for(i=0;i20

20、;i+)printf(“input the number%d:”,i);scanf(“%d”,&ai);printf(“n”);for(i=0;i20;i+)If(ai=a0)min=ai;Num1=i;Else max=ai;num2=i;printf(“min=%d,num1=%dn”,min,num1);printf(“max=%d,num2=%dn”,max,num2);5.编程打印下列的杨辉三角形。(设 8 行)1 1 1 1 2 1 1 3 3 1 1 4 6 4 1第 16 页 1 5 10 10 5 1 程序结果:#include#define N 11void main()i

21、nt i,j,aNN;/*数组为 11 行 11 列,0 行 0 列不用*/for(i=1;iN;i+)ai1=1;/*使第 1 列元素的值为 1*/aii=1;/*使对角线元素的值为 1*/for(i=3;iN;i+)/*从第 3 行开始处理*/for(j=2;j=i-1;j+)aij=ai-1j-1+ai-1j;for(i=1;iN;i+)/*输出数组各元素的值*/for(j=1;j=i;j+)printf(“%6d”,aij);printf(“n”);printf(“n”);6求分段函数的值 0ln01012XxXXeYx程序结果:#include#incldemain()double

22、x,y;scanf(“%lf”,&x);第 17 页 if(x0)y=log(x*x);else if(x=0)y=1;else y=1+exp(x);printf(“Y=%lf”,y);7编程打印以下图形(要求用循环控制语句实现)&程序结果程序结果#includemain()int i,j;for(i=1;i=6;i+)for(j=1;j=6-i;j+)printf();for(j=1;j=i;j+)printf(&);printf(n);:CC 语言语言课程综合复习资料答案课程综合复习资料答案第 18 页一、单选题一、单选题:1D 2D 3A 4A 5D 6B 7C 8B 9A 10B 1

23、1B 12C 13D 14A 15C 16C 17D 18B 19D 20D 21A 22B 23C 24A二、读程序写出程序执行结果二、读程序写出程序执行结果:1、62、WELCOME3、Sum of the digits in 26587 is 284、8 10 125、j=81 6、x=8,y=4 7、LANGUAGE8、210 9、12,12 10、2111、32 12、max=10,row=1,colum=2 13、18 14、5,9 15、7 16、查找数组中最大值并记录元素下标17、x=8,y=418、1 4 7 19、ZYXcba2 5 8 20、5,73 6 9 21、5,1

24、2,1222、*2*4*6*8*三、编程题1、#include void main()第 19 页 int x,y;scanf(“%d”,&x);if(x=1&x=10)y=3*x-1;else y=x/5;printf(“x=%d,y=%dn”,x,y);2.#include#includevoid main()/*主函数*/char c;/*定义变量*/int m=0,n=0,a=0,b=0;printf(请输入任意字符串.n);/*输入提示部分,提示输入*/while(c=getchar()!=n)/*循环语句,将由键盘输入的非n字符赋值给 c*/if(c=65&c=97&c=48&c=

25、57)/*第三个选择语句,统计数字字符的个数*/a=a+1;第 20 页 else /*统计其他字符的个数*/b=b+1;printf(%d%d%d%d,m,a,n,b);/*输出最后统计结果*/getch();/*输出结果后屏幕停留*/3.#include main()int n,i,j;printf(“n=%dn”);scanf(“%d”,&n);for(i=0;in;i+)for(j=0;jn-1-i;j+)Printf(“”);for(j=0;ji+1;j+)Printf(“*”);printf(“n”);4.#include void main()int a20,i,max,min,

26、num1,num2;for(i=0;i20;i+)printf(“input the number%d:”,i);scanf(“%d”,&ai);printf(“n”);for(i=0;i20;i+)第 21 页 If(ai=a0)min=ai;Num1=i;Else max=ai;num2=i;printf(“min=%d,num1=%dn”,min,num1);printf(“max=%d,num2=%dn”,max,num2);5.#include#define N 11void main()int i,j,aNN;/*数组为 11 行 11 列,0 行 0 列不用*/for(i=1;iN;i+)ai1=1;/*使第 1 列元素的值为 1*/aii=1;/*使对角线元素的值为 1*/for(i=3;iN;i+)/*从第 3 行开始处理*/for(j=2;j=i-1;j+)aij=ai-1j-1+ai-1j;for(i=1;iN;i+)/*输出数组各元素的值*/for(j=1;j=i;j+)printf(“%6d”,aij);printf(“n”);第 22 页 printf(“n”);6.7 略

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服