《《C语言基础》习题及答案.docx》由会员分享,可在线阅读,更多相关《《C语言基础》习题及答案.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言基础习题及答案一、选择题1.设a的值为15,n的值为5,则进行a%=(n%=2)运算后,a的值为( A )。A.0 B.1 C.12 D.62.设有类型说明 unsigned int a65535; , 按%d格式输出a的值,其结果是( B )。A.65536 B.-1 C.1 D.-32767 3.下列运算符中优先级最高的是( C )。A.?: B.& C.+ D.!=4. 以下程序输出的结果是( A )。 main( ) int a= -1,b=4,k; k=!(+a0)&! (b-8 ;y+i) printf(%d %d ,x-,y);A.10 1 9 2 B.10 9 9 0 C
2、.9 8 7 6 D.10 10 9 121. 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是( D )。A.6 B.6.500000 C.5.500000 D.6.00000022. 以下定义语句中正确的是( A )。A. int a=10,*b=&a; B. float a=b=10.0; C. char a=Ab=B; D. float *a,b=&a;23. 有以下程序main()char str10=China,Beijing,*p=str; printf(%sn,p+10);程序运行后的输出结果是( B )。A. ing B. Beji
3、ng C. ng D. China24. 下列关于单目运算符+、-的叙述中正确的是( A )。A.它们的运算对象可以是char型变量、int型变量和float型变量B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量D.它们的运算对象可以是任何变量和常量25. 设a=5、b=6、c=7、d=8、m=2、n=2,执行 (m=ab)&(n=cd)后n的值为( B )。A.4 B.2 C.3 D.1二、填空题1.C语言中静态变量和外部变量的初始化是在_编译_阶段完成的。2.设a为整型变量,初值
4、为12,执行赋值表达式a+=a-=a*a后,a的值是_-264_。3.设a和x都为整型变量,执行赋值表达式x=(a=3,6*3)后,x值为_18_。4.设整型变量a 的值为1,在16位微机中用16进制打印a的值是_ffff_。5.在内存中供用户使用的存储空间可分为三个区:存储程序的程序区,存储数据的静态存储区和动态存储区。在静态存储区中存放的数据是_全局变量和_局部静态_变量。6.C语言提供的预处理功能主要有三种:宏定义,文件包含和条件编译。 条件编译命令有三种基本形式: #ifdef 标识符 #_ifndef_标识符 #_if _表达式 程序段1 程序段1 程序段1 #else #else
5、#else 程序段2 程序段2 程序段2 #endif #endif #endif 7.类型定义:int a10,*p; 执行赋值语句pa;之后,那么p+5是_ a5的地址_,*(p+5)是_ a5_。(第1空答&a5或a+5也不算错),第2空答a5的值也可)三、判断题1、若有说明int c;则while(c=getchar();是正确的C语句。 ( T )2、int i,*p=&i;是正确的C说明语句。 ( T )3、7&3+12的值是15。 ( F )4、while 1 i,j; 一定是错误的C说明。 ( T )5、for( ; ; )S中的语句S必执行无穷多次。 ( F )6、unsig
6、ned 和void 在C中都是保留的。 ( T )7、int If=0;会出现编译错误。 ( F )8、char str10; 是错误的说明语句。 ( T )9、构成C程序的基本单位是函数。 ( T )10、所有被调用的函数一定要在调用之前进行定义。 ( F )11、语句int *p; *p=0;存在着潜在的危险。( T )12、语句int *p; p=0;是错误的。( F )13、int *p3;定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针。( T )14、print可以作为变量名使用。( T )15、if (a=0) i=1; 是合法的C语句。( T )四、阅
7、读程序题(写出程序的运行结果)1.【程序】swap1(int x,int y) int w; w=x; x=y; y=w;swap2(int *p1,int *p2) int *p; p=p1; p1=p2; p2=p;swap3(int *pa, int *pb) int p; p=*pa; *pa=*pb; *pb=p;main() int a,b; int *ptr1,*ptr2; a=5; b=7; ptr1=&a; ptr2=&b; swap1(*ptr1,*ptr2); printf(data1=%dtdata2=%dn,*ptr1,*ptr2); swap2(ptr1,ptr2)
8、; printf(data3=%dtdata4=%dn,*ptr1,*ptr2); printf(data5=%dtdata6=%dn,a,b); swap3(ptr1,ptr2); printf(data7=%dtdata8=%dn,*ptr1,*ptr2); printf(data9=%dtdata10=%dn,a,b);【运行结果】data1=5 data2=7data3=5 data4=7data5=5 data6=7data7=7 data8=5data9=7 data10=52.【程序】int a3=1,2,3,4,5,6;main() int i,j,(*p)3; p=a; pr
9、intf(%d %d %dn,p00,*(p0+1),(*p)2); printf(%d %d %dn,p10,*(p1+1),(*(p+1)2); for (i=0; i2; i+) for (j=0; j3; j+) printf(%d ,*(*(p+i)+j); printf(n);【运行结果】1 2 34 5 61 2 3 4 5 63.【程序】main() int i,n=0; for( i=2;i5;i+) do if(i%3) continue; n+; while(!i); n+; printf(n=%dn,n);【运行结果】n=44.以下程序运行后的输出结果是_。【程序】ma
10、in () char a=Language,b=Programe; char *p1,*p2; int k; p1=a; p2=b; for(k=0;k=7;k+) if(*(p1+k)=*(p2+k) printf(%c,*(p1+k);【运行结果】gae5. 【程序】#include void main()int i,j,k,a=5,m66;i=1;k=(a+1)/2;for (j=1;j=a*a;j+)mik=j;if (j%a=0) i=(i%a)+1;continue;k=(k%a)+1;i-;if (i=0) i=a;for (i=1;i=a;i+) for (j=1;j=a;j+)printf(%4d,mij);printf(n);【运行结果】17 24 1 8 1523 5 7 14 16 4 6 13 20 2210 12 19 21 311 18 25 2 9