#练习 LinuxC高级

一、选择题

1.常见的Linux发行版本有很多,下面不是Linux发行版本的是( )

A. Red Hat Linux

B. Ubuntu Linux

C.X Window

D.SuSE Linux

答案

2.下面不是对Linux操作系统特点描述的是( )

A.良好的可移植性

B.单用户

C.多用户

D.多任务

答案

3.查看创建目录命令mkdir的帮助文档,可以使用命令( )

A.mkdir –h

B.help mkdir

C.mkdir -p

D. man mkdir

答案

4.假设目录中存在若干文件file_num.txt(num表示文件编号,1~10),使用以下( )通配符可以挑选出其中的编号为1、2、3、4、5的文件

A. file_*.txt

B. flie_?.txt

C. file_[1-5].txt

D. file_[^135].txt

答案

5. 文件权限读、写、执行的三种标志符号依次是( )

A rwx

B xrw

C rdx

D srw

答案

6.在C语言中,要求运算数必须是整型的运算符是( )

A. /

B. ++

C. !=

D. %

答案

7. 若二维数组a有m列,则在a[i][j]前面的元素个数为 ( ) 

A、 j*m+i

B、i*m+j

C、i*m+j-1

D、 i*m+j+1

答案

8.执行下面语句后的输出结果为( )
int i = -1;
if (i < =0)
printf(“****\n”);
i = 2;
else
printf(“%%%%\n”); 分值2分

A. ****

B. %%

C. %%%%

D.有语法错误。不能正确执行

答案

9. pwd命令功能是什么? ( ) 

A. 设置用户的口令

B. 显示用户的口令

C. 显示当前目录的绝对路径

D. 查看当前目录的文件

答案

10. 在给定文件中查找与设定条件相符字符串的命令为( )

A.grep

B.gzip

C.find

D.sort

答案

11. 若/*pointer and function */
main()
{
int a[100],n;
...........
fun(n,&a[10]);
...........
}

Which is incorrect 不正确的是 ( 

A. void fun(int m,int x[]);

B. void fun(int s,int h[41]) ;

C.void fun(int s,int *p) ;

D.void fun(int s,int a) ;

答案

12.下述程序的输出结果是( )
int main(void)
{
int Y=100;
while(Y--);
printf(“Y=%d”,Y);

A.Y=0

B.Y=1

C.Y=-1

D.Y=随机数

答案

13.结构体DATA定义如下,则sizeof(struct DATA)的值为( )
struct DATA
{
char c1;
char c2;
int i;
}; 

A.6

B. 8

C.12

D.16

答案

14. 下面的程序运行结果为( )

char *RetMenory(void)

{

char p[] = “hello world”;

return p;

}

void Test(void)

{

char *str = NULL;

str = RetMemory();

puts(str);

A.语法有错误,不能编译

B. hello world

C.结果不可预知

D.hello world+乱码

答案

15.以下程序的功能是将字符串s中所有的字符c删除,那么空白处缺少的语句为:( )

#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 ;

} 分值2分

A.s [ j++] = s [ i ]

B.s [ ++j ] = s [ i ]

C.s [ j ] = s [ i ]; j++

D.s [ j ] = s [ i ]

答案

16. 将当前目录下的文件shell.sh移动到目录/home/linux下的命令为( ) 

A.cp shell.sh /home/linux

B. mv shell.sh /home/linux

C. ls shell.sh / home/linux/she ll.sh

D. mv /root/shell.sh /home/linux/shell.sh

答案

17.若要将当前目录中的myfile.txt文件压缩成myfile.txt.tar.gz,则实现的命令为( )

A.tar -cvf myfile.txt myfile.txt.tar.gz

B.tar -zcvf myfile.txt myfile.txt.tar.gz

C.tar -zcvf myfile.txt.tar.gz myfile.txt

D.tar -cvf myfile.txt.tar.gz myfile.txt

答案

18. 以下关于字符串的叙述中正确的是( )

A.空串比空格打头的字符串小

B.两个字符串中的字符个数相同时才能进行字符串大小的比较

C.可以用关系运算符对字符串的大小进行比较

D.C语言中有字符串类型的常量和变量

答案

19.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( )

A. extern

B. register

C. auto

D. static

答案

20.假设文件fileA的符号链接为fileB,那么删除fileA后,下面的描述正确的是( )

A].fileB也随之被删除

B].因为fileB未被删除,所以fileA会被系统自动重新建立

C].fileB会随fileA的删除而被系统自动删除

D].fileB仍存在,但是属于无效文件

答案

21.以下程序的运行结果为( )
#include <stdio.h>
#include <string.h>
int SubCount(char *dest, int count)
{
strcpy(dest,"hello");
count++;
return 0;
}

int main()
{
int count = 5;
char buf[32];
SubCount(buf,count);
printf("%d\n",count);

return 0;
}

A.8

B.4

C.3

D.5

答案

22./* Address */
a = (unsigned int *)0x800;
b= a+1; 

A. 0x800

B. 0x801

C. 0x802

D. 0x804

答案

23.若要通过位运算使整型变量a中的第4位置1,以下选项正确的是( )

A.a=a&3

B.a=a|(1 << 3)

C.a=a&(~(1 << 3))

D.a=a&4

答案

24. C语言中,逻辑“真”等价于( )

A.大于零的数

B. 大于零的整数

C. 非零的数

D.非零的整数

答案

25. Linux终端执行temp=world;echo hello $temp 上述命令执行的结果为( )

A . helloworld

B. hello$temp

C. hello world

D. hello

答案

二、简答题

1. 条件“2 < x < 3或x < -10”的C语言表达式为( ) 

答案

2. make工程管理器根据( )来自动发现更新过的文件从而减少编译的工作量 

答案

3.将命令“pwd”的标准输出重定向到文件“file”中的方法是( ) 

答案

4. 在32位操作系统中给了一个结构体,
struct A{

char a ;

char b ;

char c ;

short d;

int e;

short f;

};

求sizeof(struct A) = 

答案

5. gcc的编译步骤按先后顺序分别为(只写步骤) 

答案

6. 若有以下输入(<CR>代表回车换行符),则下面程序的运行结果为( )


int main(void)
{

int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

int (*p)[4], i, j;

p = a;

scanf(“%d,%d”,&i,&j);

printf(“%d\n”, *(*(p+i)+j));

return 0;

}

答案

三、问答题

1.现在有一个简单的工程项目,由main.c fun.c 和fun.h三个文件组成。其中main.c中包含主函数和fun.h的头文件,fun.c中为功能函数的实现,fun.h中为fun.c中功能函数的声明 。请写一个makefile实现这几个文件的编译。

答案

四、编程题

1.编写一个shell脚本完成如下功能:

在家目录下创建文件夹filer

遍历当前文件夹下的文件,如果是普通文件则放入创建的filer中

打印出放入filer文件夹中的文件数目。

答案

2. 下面findmax函数将计算数组中的最大元素及其下标值,请编写该函数
#include <stdio.h>
void findmax ( int s[ ], int t, int *k )
{

}

int main (void)
{
int a[10] = {12, 23, 34, 45, 56, 67, 78, 89, 11, 22}, k;
findmax ( a, 10, &k );
printf ( “ 最大元素为:%d, 其下标值为:%d\n”, a[k], k );
return 0;

答案

3. 创建一个结构体数组,数组名为book,结构体成员包含编号,书名,售价(数据类型自己设定)。写一个函数,包含两个形参,分别接收结构体数组的首地址和一个指定的售价,函数的功能为打印结构体数组中售价大于指定售价的书的信息。 

答案

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值