c语言第十次练习题

1、以下对二维数组 a 的正确说明是(double a[1][4])。

int a[3][]

float a(3,4)

double a[1][4]

float a(3)(4)


2、判断字符串a是否大于b,应当使用( if (strcmp(b,a)>0)

if (a>b)

if (strcmp(a,b))

if (strcmp(b,a)>0)

if (strcmp(a,b)>0)


3、有以下程序

int main()
{ int a=666,b=888;
  printf("%d\n",a,b);
}

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

错误信息

666

888

666,888


3、下列选项中,不能用作标识符的是( 2_int_ )。

1234

_1_2

int_2_

2_int_


4、在 C++ 中,用于实现动态多态性的是( 虚函数)。

内联函数

重载函数

模板函数

虚函数

//哈哈猜的 并不会


5、下列标识符错误的是( 2ab

xly

_123

2ab

_ab


6、以下不符合 C 语言语法的赋值语句是(a=1,b=2)

a=1,b=2

++j;

a=b=5;

y=(a=3,6*5);


7、以下对C语言函数的描述中,正确的是(C 程序必须由一个或一个以上的函数组成)。

C 程序必须由一个或一个以上的函数组成

C 函数既可以嵌套定义又可以递归调用

函数必须有返回值,否则不能使用函数

C 程序中有调用关系的所有函数必须放在同一个程序文件中


8、设 x,y,t 均为 int 型变量,执行下列语句后,y的值为(4),x的值是(5)。
x=y=3; t=++x||++y;

不确定

4

3

1
这里写图片描述

//并不知道原因


9、下列程序段,循环体执行次数是:3
1
2
3 y = 2;
while (y <= 8)
y = y + y;

2

16

4

3


10、用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数int (*a[10])(int);

int *a[10];

int (*a)[10];

int (*a)(int);

int (*a[10])(int);


11、下面有关java和c++的描述,错误的是?

java是一次编写多处运行,c++是一次编写多处编译

c++和java支持多继承

Java不支持操作符重载,操作符重载被认为是c++的突出特征

java没有函数指针机制,c++支持函数指针


12、不能把字符串”HELLO!”赋给数组b的语句是(char b[10];b=”HELLO!”;
//数组名不能做左值

char b[10]={‘H’,’E’,’L’,’L’,’O’,’!’,’\0’};

char b[10];b=”HELLO!”;

char b[10];strcpy(b,”HELLO!”);

char b[10]=”HELLO!”;


13、*p++ 自增p 还是 p 所指向的变量?自增p
//++的优先级比*的高,但此时++是后置的 先*p 然后p再++

自增p

自增p所指向的变量

和机器相关


14、下面程序会输出什么:1 2 2 2

    static int a=1;
void fun1(void){    a=2;  }
void fun2(void){    int a=3;  }
void fun3(void){   static int a=4;  }
int main(int argc,char** args){ 
     printf(“%d”,a); 
     fun1( ); 
     printf(“%d”,a); 
     fun2( ); 
     printf(“%d”,a);
     fun3( );
      printf(“%d”,a); 
}

1 2 3 4

1 2 2 2

1 2 2 4

1 1 1 4


15、已知一运行正常的程序中有这样两个语句:int p1,*p2=&a; p1=b; 由此可知,变量a和b的类型分别是(int和int)

int和int

int*和int

int和int*

int*和int*


16、c++中,声明const int i,是在哪个阶段做到 i只可读的(编译之前)

编译

链接

运行

以上都不对


17、以下程序的运行结果是(computer , com)

int main(void)
{
printf("%s , %5.3s\n","computer","computer");
return 0;
}

computer , puter

computer , com

computer , computer

computer , compu.ter


18、运行下面这段C语言程序之后,输出在屏幕上的结果是:a=1, b=2, c=3, *p=2

void foobar(int a, int *b, int **c)
{
    int *p = &a;
    *p = 101;
    *c = b;
    b = p;
}

int main()
{
    int a = 1;
    int b = 2;
    int c = 3;
    int *p = &c;
    foobar(a, &b, &p);
    printf("a=%d, b=%d, c=%d, *p=%d\n", a, b, c, *p);
    return (0);
}

a=1, b=2, c=3, *p=2

a=101, b=2, c=3, *p=2

a=101, b=101, c=2, *p=3

a=1, b=101, c=2, *p=3


19、下列程序的运行结果是3,5,请为横线处选择合适的程序((*(p+1)).n或者(p+1)->n

#include<stdio.h>
 struct S
 {
    int n;
    char c[10];
 } *p;//定义了一个结构体指针
 main()
 {
    struct S a[3]={{3,"abc"},{5,"def"},{7,"ghi"}};//结构体数组
    p=a;
    printf("%d,",(*p).n);
    printf("%d\n",(*(p+1)).n);
 }

20、在 C 语言中下面那个语句的结果是 1 ?return 7&1 和char *p=”hello”; return p == “hello”;

main 函数正常结束的返回值
//通常1代表返回正常,返回值可以由程序员自己写

return 7&1;

char *p=”hello”; return p == “hello”;

上面都不对


21、下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]…中,把偶数从数组中删除,奇数个数通过函数值返回。 例如,若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7,删除偶数后,a所指数组中的数据为:9,1,3,5,7,返回值为5。
函数原型:int cnt_array_oushu(int *a, int len)

程序如下:

#include<stdio.h>
//遍历函数
void show(int*a,int len)
{
    int i=0;
    for(i=0;i<len;i++)
    {
        printf("%d\n",*(a+i));
    }
}
//业务函数
int cnt_array_oushu(int*a,int len)
{
    int cnt=0;//计数用 
    int i=0,j=0;
    for(i=0;i<len;i++)
    {
        if((*(a+i))%2  != 0 )//判断是不是奇数  
        {
            *(a+j)=*(a+i);//奇数的话保留 
            j++;
            cnt++;//计数奇数的个数 
        }
    }
    *(a+j)='\0';//给新的数组末尾添上反斜杠0 
    printf("该数组中奇数的个数为:%d 个 \n",cnt);
    return cnt;     
} 
//主函数
int main(void)
{
    int a[]={9,1,4,2,3,6,5,8,7};
    show(a,cnt_array_oushu(a,9));
    return 0;
}

函数运行结果:
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值