《C语言基础》习题及答案.docx

上传人:b****8 文档编号:11381297 上传时间:2023-02-28 格式:DOCX 页数:8 大小:20.71KB
下载 相关 举报
《C语言基础》习题及答案.docx_第1页
第1页 / 共8页
《C语言基础》习题及答案.docx_第2页
第2页 / 共8页
《C语言基础》习题及答案.docx_第3页
第3页 / 共8页
《C语言基础》习题及答案.docx_第4页
第4页 / 共8页
《C语言基础》习题及答案.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

《C语言基础》习题及答案.docx

《《C语言基础》习题及答案.docx》由会员分享,可在线阅读,更多相关《《C语言基础》习题及答案.docx(8页珍藏版)》请在冰豆网上搜索。

《C语言基础》习题及答案.docx

《C语言基础》习题及答案

《C语言基础》习题及答案

《C语言基础》习题及答案

一、选择题

1.设a的值为15,n的值为5,则进行a%=(n%=2)运算后,a的值为。

 

2.设有类型说明unsignedinta=65535;,按%d格式输出a的值,其结果是。

  B.-1  D.-32767  3.下列运算符中优先级最高的是。

A.?

:

  B.&&  C.+  D.!

=4.以下程序输出的结果是。

main()

{inta=-1,b=4,k;

k=!

((++a 5.下面的程序执行后,变量a的值是。

#defineSQR(x)x*xmain()

{inta=10,k=2,m=1;  a/=SQR(k+m)/SQR(k+m);  printf(\}

 

6.设有inti;则表达式i=1,++i,++i||++i,i的值为。

  

7.设有inti;则表达式(i=1,i=10)?

i++||++i:

++i的值为。

  

8.设有inta={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是。

11,12  ,12,12,12,12  ,11,12

9.设有inti,j,k;则表达式i=1,j=2,k=3,i&&j&&k的值为(A)。

  

10.设有说明ints[2]={0,1},*p=s;则下列错误的C语句是(A)。

+=1;+=1;C.*p++;D.(*P)++;

1

11.以下叙述正确的是(D)。

A.可以把define和if定义为用户标识符

B.可以把if定义为用户标识符,但不能把define定义为用户标识符和if都不能定义为用户标识符

D.可以把define定义为用户标识符,但不能把if定义为用户标识符12.以下程序的输出结果是。

  voidprtv(int*x)

{printf(\  }

main()

{inta=25;  prtv(&a);  }

D.以上均不对13.设有以下说明语句  structex

{intx;floaty;charz;}example;则下面的叙述中不正确的是。

ex是结构体类型,y,z都是结构体成员名是结构体类型的关键字是结构体类型名

14.下列叙述中正确的是。

语言的函数可以嵌套定义

语言的子程序有过程和函数两种语言编译时不检查语法

语言中,根据函数能否被其它源文件调用,被区分为内部函数和外部函数

15.若有说明:

inti,j=7,*p=&i;则与i=j;等价的语句是。

=*p;  =**p;=&j;  D.*p=*&j;

16.以下程序的输出结果是。

main()

{charst[20]=\

printf(\}

 

2

17.不合法的main函数命令行参数表示形式是。

(intargv,char*arge)(intarc,char**arv)(intargc,char*argv)(inta,char*c)

18.若有说明语句:

inta,b,c,*d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是。

(\(\(\(\

19.以下程序段的输出结果是(A)。

chars=\printf(\

20.以下程序的输出结果是。

main()

{intx=10,y=10,i;  for(i=0;x>8;y=++i)  printf(\}

192  990  876  1091

21.设a和b均为double型变量,且a=、b=,则表达式(int)a+b/b的值是。

22.以下定义语句中正确的是。

A.inta=10,*b=&a;B.floata=b=;C.chara='A'b='B';D.float*a,b=&a;23.有以下程序main()

{charstr[10]={\printf(\}

3

程序运行后的输出结果是。

A.ingB.BejingC.ng  D.China

24.下列关于单目运算符++、--的叙述中正确的是。

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=a>b)&&(n=c>d)后n的值为。

 

二、填空题

语言中静态变量和外部变量的初始化是在___编译___阶段完成的。

2.设a为整型变量,初值为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.在内存中供用户使用的存储空间可分为三个区:

存储程序的程序区,存储数据的静态存储区和动态存储区。

在静态存储区中存放的数据是___全局变量和___局部静态____变量。

语言提供的预处理功能主要有三种:

宏定义,文件包含和条件编译。

条件编译命令有三种基本形式:

①#ifdef标识符  ②#__ifndef__标识符  ③#___if___表达式  程序段1  程序段1   程序段1  #else   #else   #else   程序段2  程序段2   程序段2  #endif   #endif   #endif  

7.类型定义:

inta[10],*p;

执行赋值语句p=a;之后,那么p+5是___a[5]的地址_____,*(p+5)是___a[5]_____。

,第2空答a[5]的值也可)

三、判断题

4

1、若有说明intc;则while(c=getchar());是正确的C语句。

2、inti,*p=&i;是正确的C说明语句。

3、7&&3+12的值是15。

4、while1i,j;一定是错误的C说明。

5、for(;;)S中的语句S必执行无穷多次。

6、unsigned和void在C中都是保留的。

7、intIf=’\\0’;会出现编译错误。

8、charstr[10];是错误的说明语句。

9、构成C程序的基本单位是函数。

10、所有被调用的函数一定要在调用之前进行定义。

11、语句int*p;*p=0;存在着潜在的危险。

12、语句int*p;p=0;是错误的。

13、int*p[3];定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针。

14、print可以作为变量名使用。

15、if(a=0)i=1;是合法的C语句。

四、阅读程序题

1.【程序】

swap1(intx,inty){intw;

w=x;x=y;y=w;}

swap2(int*p1,int*p2){int*p;

p=p1;p1=p2;p2=p;}swap3(int*pa,int*pb){intp;

p=*pa;*pa=*pb;*pb=p;}main(){inta,b;

int*ptr1,*ptr2;a=5;b=7;

ptr1=&a;ptr2=&b;swap1(*ptr1,*ptr2);

printf(\swap2(ptr1,ptr2);

printf(\printf(\

5

swap3(ptr1,ptr2);

printf(\printf(\}

【运行结果】

data1=5data2=7data3=5data4=7data5=5data6=7data7=7data8=5data9=7data10=52.【程序】

inta[3]={1,2,3,4,5,6};main()

{inti,j,(*p)[3];p=a;

printf(\printf(\for(i=0;iprintf(\printf(\}

【运行结果】123456

1234563.【程序】main()

{inti,n=0;

for(i=2;i{if(i%3)continue;  n++;

}while(!

i);  n++;}

printf(\}

6

【运行结果】

n=44.以下程序运行后的输出结果是______。

【程序】main()

{chara=\char*p1,*p2;intk;p1=a;p2=b;

for(k=0;kif(*(p1+k)==*(p2+k))printf(\}

【运行结果】

gae5.【程序】

#includevoidmain(){

inti,j,k,a=5,m[6][6];i=1;k=(a+1)/2;

for(j=1;jfor(i=1;ifor(j=1;j}

m[i][k]=j;

if(j%a==0){i=(i%a)+1;continue;}k=(k%a)+1;i--;

if(i==0)i=a;

}

{

【运行结果】1724  1  8  1523  5  714  164  61320  2210121921  3111825  2  9

7

《C语言基础》习题及答案

一、选择题

1.设a的值为15,n的值为5,则进行a%=(n%=2)运算后,a的值为。

 

2.设有类型说明unsignedinta=65535;,按%d格式输出a的值,其结果是。

  B.-1  D.-32767  3.下列运算符中优先级最高的是。

A.?

:

  B.&&  C.+  D.!

=4.以下程序输出的结果是。

main()

{inta=-1,b=4,k;

k=!

((++a 5.下面的程序执行后,变量a的值是。

#defineSQR(x)x*xmain()

{inta=10,k=2,m=1;  a/=SQR(k+m)/SQR(k+m);  printf(\}

 

6.设有inti;则表达式i=1,++i,++i||++i,i的值为。

  

7.设有inti;则表达式(i=1,i=10)?

i++||++i:

++i的值为。

  

8.设有inta={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是。

11,12  ,12,12,12,12  ,11,12

9.设有inti,j,k;则表达式i=1,j=2,k=3,i&&j&&k的值为(A)。

  

10.设有说明ints[2]={0,1},*p=s;则下列错误的C语句是(A)。

+=1;+=1;C.*p++;D.(*P)++;

1

11.以下叙述正确的是(D)。

A.可以把define和if定义为用户标识符

B.可以把if定义为用户标识符,但不能把define定义为用户标识符和if都不能定义为用户标识符

D.可以把define定义为用户标识符,但不能把if定义为用户标识符12.以下程序的输出结果是。

  voidprtv(int*x)

{printf(\  }

main()

{inta=25;  prtv(&a);  }

D.以上均不对13.设有以下说明语句  structex

{intx;floaty;charz;}example;则下面的叙述中不正确的是。

ex是结构体类型,y,z都是结构体成员名是结构体类型的关键字是结构体类型名

14.下列叙述中正确的是。

语言的函数可以嵌套定义

语言的子程序有过程和函数两种语言编译时不检查语法

语言中,根据函数能否被其它源文件调用,被区分为内部函数和外部函数

15.若有说明:

inti,j=7,*p=&i;则与i=j;等价的语句是。

=*p;  =**p;=&j;  D.*p=*&j;

16.以下程序的输出结果是。

main()

{charst[20]=\

printf(\}

 

2

17.不合法的main函数命令行参数表示形式是。

(intargv,char*arge)(intarc,char**arv)(intargc,char*argv)(inta,char*c)

18.若有说明语句:

inta,b,c,*d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是。

(\(\(\(\

19.以下程序段的输出结果是(A)。

chars=\printf(\

20.以下程序的输出结果是。

main()

{intx=10,y=10,i;  for(i=0;x>8;y=++i)  printf(\}

192  990  876  1091

21.设a和b均为double型变量,且a=、b=,则表达式(int)a+b/b的值是。

22.以下定义语句中正确的是。

A.inta=10,*b=&a;B.floata=b=;C.chara='A'b='B';D.float*a,b=&a;23.有以下程序main()

{charstr[10]={\printf(\}

3

程序运行后的输出结果是。

A.ingB.BejingC.ng  D.China

24.下列关于单目运算符++、--的叙述中正确的是。

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=a>b)&&(n=c>d)后n的值为。

 

二、填空题

语言中静态变量和外部变量的初始化是在___编译___阶段完成的。

2.设a为整型变量,初值为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.在内存中供用户使用的存储空间可分为三个区:

存储程序的程序区,存储数据的静态存储区和动态存储区。

在静态存储区中存放的数据是___全局变量和___局部静态____变量。

语言提供的预处理功能主要有三种:

宏定义,文件包含和条件编译。

条件编译命令有三种基本形式:

①#ifdef标识符  ②#__ifndef__标识符  ③#___if___表达式  程序段1  程序段1   程序段1  #else   #else   #else   程序段2  程序段2   程序段2  #endif   #endif   #endif  

7.类型定义:

inta[10],*p;

执行赋值语句p=a;之后,那么p+5是___a[5]的地址_____,*(p+5)是___a[5]_____。

,第2空答a[5]的值也可)

三、判断题

4

1、若有说明intc;则while(c=getchar());是正确的C语句。

2、inti,*p=&i;是正确的C说明语句。

3、7&&3+12的值是15。

4、while1i,j;一定是错误的C说明。

5、for(;;)S中的语句S必执行无穷多次。

6、unsigned和void在C中都是保留的。

7、intIf=’\\0’;会出现编译错误。

8、charstr[10];是错误的说明语句。

9、构成C程序的基本单位是函数。

10、所有被调用的函数一定要在调用之前进行定义。

11、语句int*p;*p=0;存在着潜在的危险。

12、语句int*p;p=0;是错误的。

13、int*p[3];定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针。

14、print可以作为变量名使用。

15、if(a=0)i=1;是合法的C语句。

四、阅读程序题

1.【程序】

swap1(intx,inty){intw;

w=x;x=y;y=w;}

swap2(int*p1,int*p2){int*p;

p=p1;p1=p2;p2=p;}swap3(int*pa,int*pb){intp;

p=*pa;*pa=*pb;*pb=p;}main(){inta,b;

int*ptr1,*ptr2;a=5;b=7;

ptr1=&a;ptr2=&b;swap1(*ptr1,*ptr2);

printf(\swap2(ptr1,ptr2);

printf(\printf(\

5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

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

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