C语言题目答案.doc

上传人:s****u 文档编号:12766676 上传时间:2020-05-23 格式:DOC 页数:13 大小:92.50KB
返回 下载 相关 举报
C语言题目答案.doc_第1页
第1页 / 共13页
C语言题目答案.doc_第2页
第2页 / 共13页
C语言题目答案.doc_第3页
第3页 / 共13页
点击查看更多>>
资源描述
一、选择题1设char cl; , 则cl中为小写英文字母字符的正确表达式为( )A. a=a)&(cl=a)&(c1=z) D. (a=c1)2一维数组a的正确说明语句为( )A. int a(10); B. int n=10, an;C. int n; D. #define SIZE 10scanf(d,&n); int aSIZE;int an;3已知字符A的ASCII码值是65,且char cl=A, c2=D;则执行语句printf(d,dn,cl,c2-2);后的输出结果是( )A. A, D B. A, BC. 65, 68 D. 65, 664设int a=7; float x=2.5, y=4.7;, 则表达式x+3(int)(x+y)/4的值是( )A. 2.75B. 3.25C. 2.5 D. 0.05构成C语言程序的基本单位是( )。A过程 B函数 C语句 D命令6下列选项中,不正确的赋值语句是( )。Ay-; Bx=y=z=0; Cm=n%k; Dt=a+x=3;7合法的C语言标识符是( )。A 5dm B ab C Hh D $s8设int x=2,y=4;,值为非0的表达式是( )A. 1/x*yB. 1/(x*y)C. 1.0/x/yD. 1/x/ (double)y9设int i=l, k=2;, 则错误的循环语句是( )A. for(i=0,k=k-1;i+,k+) s; B. for(;k-1;i+) s;C. for(i=1,k=4;k-;i+) s; D. for(;k-;) s;10设typedef structint a;char s10; TYPE; TYPE u1;则printf(”dn”,sizeof(u1);的输出结果是( )A. 2 B. 12C. 14 D. 1611设char sl =“string1”,s28, *s3, *s4=“string2”;,则对系统函数strcpy的错误调用是( )A. strcpy(s1, s4);B. strcpy(s4, “string2”);C. strcpy(“string2”,s2);D. strcpy(s4,s1);12正确的数组定义及初始化的是( )A. char a10=“string”; B. int a5=0,1,2,3,4,5;C. char a=“string”; D. int a =x,y,z;13若有以下定义,则数值为4的表达式是()。int a34=1,2,3,4,5,6,(*p)4=a;Ap11 Bp+,*(p+1) Ca22 D*(p+1*4+1)14在循环体中用来强制继续循环的语句是( )A. break B. continueC. exit D. return15有说明 struct char name15,sex; int age;float score;stu,*p=&stu;以下语句中正确的是( )。 Ascanf(“%c”,p-sex); Bscanf(“%s”,stu.name);Cscanf(“%d”,stu.age); Dscanf(“%f”,p-score);16设int a=2,b=5;,结果为0的表达式是( )A. a%bB. a&b C.!(a=b)D. a!=b17正确的数组定义及初始化的是( )A. char a10=“string”;B. int a5=0,1,2,3,4,5;C. char a=“string”;D. int a =x,y,z;18设int a=1,b=2,c=3,d=4,f;,执行语句f=(a!=b)?c+:d+;后f的值是( )A. 2B. 3C. 4D. 519设int m=5;,语句while (m=0)printf (%d,m-=2);的循环体执行的次数是( )A. 0B. 1C. 2D. 无限20设int a;执行表达式(a=1,2,3),a+1后,a和表达式的值分别是( )A. 1和2 B. 2和3C. 3和4 D. 4和521下列关于函数定义正确的是( )A. fun(int x,y)int z;return z;B. void fun(int x,int y)return x+y;C. fun(x,y)int x,y;double z;z=x+y;return z;D. double fun(int x,int y) double z;z=x+y;return z;)22下列用户自定义标识符正确的是( )A. 4a B. b_1 C. -& D. *p23下列程序段正确的是( )A. char s =xyz;B. float *p,i;scanf(s”,s);p=*p+i;C. char s5=word;D. int a5=0,*p=a;puts(s);*p=*(p+1);24关于编译预处理命令,叙述正确的是( )A. 预处理命令都以“#”开头B. 预处理命令必须位于程序的首部C. 预处理命令只能实现宏定义和条件编译的功能D. 预处理命令必须位于函数外部25设有定义“int a=3,b,*p=&a”,则下列语句中使b不为3的语句是( )。Ab=*&a; Bb=&*a; Cb=a; Db=*p;26下面各选项中,有错的语句或声明是( )。Achar st45=“ABC”; B char s5=A,B,C ; C char *s;s=”ABC”; D char s5;s=”ABC”;27若有以下定义,则数值为4的表达式是()。int a34=1,2,3,4,5,6,(*p)4=a;Ap11 Bp+,*(p+1) Ca22 D*(p+1*4+1)28对如下的结构定义,则正确的语句是( )struct student char name20; char sex; int age; Li;ALi.name=”Li”; BLi=“Li”,M,20; CLi.age=20; Dstruct Li=“Li”,M,20;29在一个C语言程序中( )A. 主函数只能有一个B. 主函数可以有多个C. 非主函数只能有一个D. 主函数和非主函数都可以有多个30关于指针的说法不正确的是( ) A一个指针变量只能指向同一类型的变量 B一个变量的地址成为该变量的指针 C只有同一类型变量的地址才能放到指向该类型变量的指针变量之中 D两个同类型的指针变量可以进行加法和减法运算。二、填空题1设有宏定义#define X 2+3,则printf(“dn”,4*X);的输出结果是_11_。2设int a=12;,语句printf(%dn,(a/3,a%30);的输出结果是 12 。3函数中未指定存储类型的局部变量,其隐含的存储类型是 auto 。4若全局整型变量未初始化,则默认的初始值是 0 。5调用系统函数strcmp(),必须在程序的开头写上一条文件包含命令是_#include_。6设char a20=NANJING”,*p=a+2;,则*(p+2)的值是_I_。7在函数间传递数据时,函数的形参和调用时的实参都是数组,传递方式为_地址_。8若文件型指针fp已指向某文件的末尾,则函数feof(fp)的返回值是_非0值_。9请写出数学式 的C 语言表达式是 sqrt(2*a*b*b)/(2*a*b) 。 10执行以下程序后a的值为 5 。 int a,k=16,m=3,*p1=&k,*p2=&m;a=(*p1)/(*p2);11若有说明和定义: enum xyz cat,rabbit=5 ,cow=2, dog ,mouse ; 则语句printf(“%d”,dog);的执行结果是 3 。12下面程序片段,退出while循环时,s的值是 24 。 int n=234,s=l;while(n) s*=n%10; n/=10;13设a=2,b=1则执行表达式a+=a-=a*=a+2的后a的值是 0 。14设int x=1,y=-1,z;则执行表达式z=x-|+y后y的值为 -1。15设double x;,则表达式x=5,x+,(x-5)/2的值是_0.5_。16设char ch;,判断ch为数字字符的逻辑表达式是 ch=0 & ch=9 。17.设typedef float REAL;REAL x=1;,表达式x/2的值是 0.5 。18设double x;,则表达式x=4,x-,(x+1)/2的值是_2.0_。19能正确表述“2x2&xa?x: a ; y=yx?y: x; 25以下程序的输出结果是 123 char s120=”abcw12d”,s2=”123”;main( ) strcpy(s1,s2);printf(“%sn”, s1); 26设int x=1,y=-1,z;则执行表达式z=x-&+y后y的值为 -1 。27在C语言中,要使用文件,应先写如下的文件包含命令 #include ,要使用正弦函数(sin(x),应先写如下的文件包含命令 #include 。28下面程序的输出结果第一行为 e 第二行为 mnop 。int k;char *str6=“abcd”,“efgh”,“ijkl”,“mnop”,“qrst”,“uvwx”,*p=str;printf(“%cn”,*(p1);printf(“%sn”, *(p+3);三、阅读程序题1程序输出第二行为 8 10 int y;void fun(int y) static int x=2;x=x*y; y=x+y;printf(“%3d%3dn”,x,y); main()int i,x=2;for(i=0;i2;i+) fun(x); 2程序的运行结果为 2 4 main() int i=1; while(i5) switch(i+) case 1: printf(“%d”,i+); case 2: break;case 3: printf(“%d”,i+); default: break;case 4: printf(“ABC”); 3阅读函数,写出函数的主要功能 一维数组平均值 float av(float a, int n) int i; float s;for(i=0,s=0;in;i+)s=s+ai;return(s/n);4程序的运行结果为 1,2,8,8 #includeint f(int a,int b,int *c) a=a+b; b=a+b;*c=a+b ; return(a+b); void main()int a=1, b=2, c=3, d=4; d=f(a,b,&c); printf(“%d, %d, %d, %dn”,a,b,c,d);5程序输出结果为 AABBCC 。#include #include char *fun(char *s1,char *s2) int j=0;char *p=s1; static char s50; for(; *s2!=0;s2+) for(s1=p;*s1!=0;s1+) if(*s1=*s2) sj=*s1; j+; sj=0;return s;main() char str1=”ABCDDCBA”, str2=”ABC”,*p; p=fun(str1,str2); puts(p);6程序的运行结果为 20 . #include #define N 6void main ()int a N=2,5,-6,3,-9,10, i,s=0;for (i=0;iN;i+)if(ai0) continue;s=s+ai;printf (“%dn”,s);7程序的运行结果为 AI2010 #include #include void main ()char *pa, a 20=”SHANGHAI2010”;for (pa=a+6;*pa!=0;pa+) putchar (*pa);putchar (n);8程序的运行结果为 5 #define Y(a,b) 2*a*b main() int a;a=Y(2+1,2-1);printf(“%dn”,a);9写出程序输出结果 8 11 int b;f(int b) static int y=3; b+; y+; return(b+y+); main() int a=2,i,k; for(i=0;i2;i+) printf(”dn”,f(+a); 10程序输出结果为 BDBD #include #include void fun(char *s1,char *s2) char *s; for(; *s2;s2+) for(s=s1;*s;) if(*s=*s2) while(*s) *s=*(s+1),s+; s=s1; else s+;main() char str1=ABCDABCD, str2=ACE; fun(str1,str2); printf(%s n,str1);四、完善程序题1 以下程序计算sin(x)的值,精确到小数点后6位。请填空。 #include void main() float x,sinx,t;int p,n; sinx=0; p=n=1;scanf(“%f”,&x); t=x; do sinx=sinx+p*t ; p=-p;n=n+2;t=t* x*x/(n*(n-1) ; while(fabs(t)1e-6); printf(“%f,%fn”,sinx,sin(x);2下面函数实现两个字符串比较,若两个字符串相同返回值为0,若两串不同则返回第一个不同字符的ASCII差值。请填空。 int mycmp(char *s,char *t) while(*s& *s=*t ) s+; t+;return *s-*t ; 3以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的大写字母变成小写字母,其它字符不变,并写到文件test.dat中。如输入为abc23XYZ45Az?,写入文件的内容为:abc23xyz45az?请填空。#include main() FILE *fp; char str80; int i=0; if(fp=fopen(test.dat, ”w” )=NULL) printf(cant open this file.n);exit(0); printf(input a string :n); gets(str); while (stri) if( stri=A&stri=Z ) stri +=32;fputc( stri,fp ); i+; fclose(fp); 4.以下程序计算自然数e的值,精确到小数点后6位。请填空。void main ( )float e,tint n;e=t=n=1;do e= e+t ; n+; t=t /n ; printf(“%fn”,e);5. 下面函数实现两个字符串连接(库函数strcat的功能),请填空。 int mycat(char *s,char *t) while( *s ) s+; while( *s=*t ) s+; t+; 6以下程序的功能是:从键盘上输入一行字符, 把该字符串中的字母变成大写字母写到文件test.txt中(其他字符不变),请填空。如输入为abc23XYZ45Az?,写入文件的内容为:ABC23XYZ45AZ?#include main() FILE *fp; char str80; int i=0; if(fp=fopen(test.txt, ”w” )=NULL) printf(cant open this file.n);exit(0); printf(input astring:n); gets(str); while (stri) if(stri=a&stri=z) stri = stri-32 fputc( stri,fp ); i+; fclose(fp); 第 13 页 共 13 页
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!