C语言测试题.doc_第1页
C语言测试题.doc_第2页
C语言测试题.doc_第3页
C语言测试题.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言测试题 一、 填写下面代码的输出结果(每小题3分,共24分)1.#include int main(void)int x=2,y,z; x*=(y=z=5); printf(“%dn”,x); 10 (y=5,z=5,x=10) z=3; x=(y=z); printf(“%dn”,x); 10 (y=z x不变,为10) x=(y=z); printf(“%dn”,x); 1 (y=z, 为真,所以x=1) x=(y&z); printf(“%dn”,x); 3 (按位与:y&x=3) x=(y&z); printf(“%dn”,x); 1 (逻辑与结果为真,等于1) y=4; x=(y|z); printf(“%dn”,x); 7 (按位或) x=(y|z); printf(“%dn”,x); 1 (逻辑或,结果非零)return 0;2.int i=3,j=4;i?i+:+j; (i非零,执行i+)printf(“%d %dn”,i,j); 4, 4 3. #define product(x) (x*x) int main(void)int i=3,j,k; j=product(i+);9k=product(+i); 49 (i+*i+)然后(+i*+i)总共加加4次printf(“j=%d,k=%d”,j,k); 7*7 return 0;4. int main(void) 高: double float |unsigned int a=6; longint b=-20; |int c; unsigned(a+b6)?(c=1):(c=0); |printf(“c=%dn”,c); 低: int char,short5. int test(char var10) return sezeof(var); var为指针变量,长度为4字节 int main(void)char var10;int i,j;i=sizeof(var); /数组的长度为10,指针的长度固定为4j=test(var); 10,4printf(“i=%d,j=%dn”,i,j); 6. int main(void) int j,k,l,m; int i=(j=4,k=8,l=16,m=32); 一排逗号,取最后一个 printf(“i=%d”,i); 327. int main(void) int a=-1; 总共4个字节 printf(“a=%on”,a); 输出八进制:377777777778. int main(void) int a5=1,2,3,4,5 int (*p)5=a; 先按数组跳跃,挑到数组a之外 printf(“%dn”,*(*(p+1)-1); 再按元素跳跃,跳回一个元素最终指向a5 a5的值为5二、填空(每小题3分,共30分)1. 若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则 输入数据的形式应该是 _a=1234 b=5_ 。 . . . char a10,b; scanf(a=%s b=%c,a,&b); printf(%s,%cn,a,b); 2. #include main( ) int i=0,j=0,a=6; if (+i 0) | (j+ 0) a+; printf(i=%d,j=%d,a=%dn,i,j,a); 结果:_i=1,j=0,a=7_ 3. 以下程序不用第三个变量,实现将两个数进行对调操作,请填空: #include main() int a , b ; scanf (%d%d , &a , &b); printf(a=%d b=%dn , a , b ); a=a+b; b=(_a-b_); a=(_a-b_); printf(a=%d b=%dn,a,b);4. 以下程序不用第三个变量,实现将两个数进行对调操作,请填空: #include main() int a , b ; scanf (%d%d , &a , &b); printf(a=%d b=%dn , a , b ); a=ab; b=(_ab_); a=(_ab_); printf(a=%d b=%dn,a,b); (与第三题方法不一样)5. 表示条件:10 x 100或x 0的C语言表达式是_(10x & x100)|(x0)_。 6. 若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为_5.5_ a+(int)(b/3*(int)(a+c)/2)%4 (int)(a+c)=7b/3*7/27. 设有以下程序: main() int n1,n2; scanf(%d,&n2); while(n2!=0) n1=n2%10; n2=n2/10; printf(%d,n1); 程序运行后,如果从键盘上输入1298;则输出结果为_8921_。 8. 以下程序运行后的输出结果是_9876 876_。 main() char s =9876,*p; for ( p=s ; p s+2 ; p+) printf(%sn, p); 9.下列程序段的输出结果是 _Hello_。 main() char b=Hello,you; b5=0; printf(%s n, b ); 10.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个_#define MIN(x,y) (x)(y)?(x):(y)_。 三、问答(每小题7分,共14分)1.表述一个C程序的内存布局,最好用程序和图形表达。2. 用变量a给出下面的定义a) 一个整型数b)一个指向整型数的指针c)一个指向指针的的指针,它指向的指针是指向一个整型数d)一个有10个整型数的数组e) 一个有10个指针的数组,该指针是指向一个整型数的。f) 一个指向有10个整型数数组的指针g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数f)int *(*a)10;表述出a的意义。四。、编程题(每题8分,共32分)1. 将一个字符串逆序。2. 将一个单向链表逆置。3. 写一个函数,将字符串中的t都转换成4个空格。4. 输入一个字符串,内有数字和非数字字符,例如:a123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a0,456放在a1统计共有多少个整数,并输出这些数。#include #include

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论