C 语言好的习题— 1

指针:
1、对于同类型的两个指针变量p1和p2,他们之间可以进行p1>p2,p1-p2,p1=p2,但是不能进行p1+p2。
===============================================================
2、指针p必须先指向一个地址然后才能进行*p的赋值
================================================================
3. 以下程序的输出结果是______。(保留题)
#include <stdio.h>
main() 
{ char a[5][10]={"one","two","three","four","five"};
int i,j; char t;
for(i=0;i<4;i++)
 for(j=i+1;j<5;j++)
   if(a[i ][0]>a[j][0]){t=a[i][0];a[i][0]=a[j][0];a[j][0]=t;}
puts(a[1]);    }   
A.fwo B.fix C.two D.owo
===============================================================  
4. 若float x ;x = 10/4 ; x 的值是。B
A、2.5 B、2.0 C、3 D、2
==============================================================
4. 表达式!x 等价于。A
A、x==0 B、x==1 C、x != 0 D、x != 1
================================================================
5. 设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是__D____。
A.'x'&&'y'                            B.x<=y       
C.x||y+z&&y-z                         D.!((x<y)&&!z||1)
===============================================================
6、如果某个函数在定义时省略了存储类型,则默认的存储类型是int。×详解:int是数据类型不是存储类型,存储类型是extern
================================================================
7、C程序中,定义函数时的参数是“实际参数”,调用函数时的参数是“形式参数”。×详解:函数定义时是形式参数,函数被调用时传的是实参
==========================================================
8、C程序中所有的全局变量都是静态存储的。√
===========================================================
9、如果在一个函数中的复合语句内定义了一个变量,则该变量在该函数中都有效。×详解:复合语句定义用的是{},在复合语句内的变量只在复合语句内有效。参考P184页第二个代码变量 c的作用域。
=============================================================
10、在函数之间数据传递的方式有三种,即返回值、参数、全局变量。×详解:还有地址传递
============================================================
11、下列的结论中只有____B____是正确的。
A.所有的递归程序均可以采用非递归算法实现
B.只有部分递归程序可以用非递归算法实现
C.所有的递归程序均不可以采用非递归算法实现
D.以上三种说法都不对
=============================================================
12、char a[]="advdf",b[]="ab";
strcpy(a[],b[]);
sizeof(a)=?
13、char *p;scanf("%s",s),错,p指向未知是野指针,不能赋值,但是char*p="safag"可以,表示p指向常量区s所指向的地址
==============================================================
14、有以下程序 
#define PT 3.5 ; 
#define S(x) PT*x*x ; 
main() { 
int a=1, b=2; 
printf("%4.1f\n" , S(a+b)); } 
程序运行后的输出结果是
A)31.5
B)7.5
C)程序有错无输出结果 
D)14.0
答案:C
=============================================================
15、下述程序第二次的输出结果为( B )。
int main(void)
{
extern int a;
int b=0;
static int c;
a+=3;
other();
b+=3;
other();
}
int a=5;
other()
{
int b=3;
static int c=2;
a+=5; b+=5; c+=5;
printf("%d,%d,%d\n",a,b,c);
c=b;
}
[A] 13,0,13 [B] 18,8,13 [C] 13,8,13 [D] 18,8,0
==========================================================
16、以下程序的功能是将字符串s 中所有的字符c 删除,那么空白处缺少的语句为:( A )。
#include <stdio.h>
int main(void)
{
char s[80] ;
int i, j ;
gets(s) ;
for ( i = j = 0 ; s [i] != ‘\0’ ; i++ )
if ( s [i] != ‘c’ )
;
s [ j ] = ‘\0’ ;
puts ( s ) ;
return 0 ;
}
[A] s [ j++] = s [ i ] [B] s [ ++j ] = s [ i ]
[C] s [ j ] = s [ i ]; j++ [D] s [ j ] = s [ i ]
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值