2021知到答案 C语言程序设计基础(专业校内课) 智慧树网课章节测试答案

第一章 章节测试

1、选择题:下列对C语言特点的描述中,错误的是(    )。
选项:
A:C语言编程简洁明了
B:C语言不是结构化程序设计语言
C:C语言移植性好
D:C语言功能较强
答案: 【C语言不是结构化程序设计语言
2、选择题:下列关于C语言程序在结构上特点的描述中,错误的是(    )。
选项:
A:C语言程序是一个函数串
B:C语言程序可以由一个或多个文件组成
C:C语言程序的诸多函数中,只能有一个主函数
D:C语言程序被执行时,通常是从第1个函数开始
答案: 【C语言程序被执行时,通常是从第1个函数开始
3、选择题:scanf()函数的格式说明符中,长整型数的输入格式说明符是(   )。
选项:
A:%ld
B:%d
C:%x
D:%lf
答案: 【%ld
4、选择题:在printf()函数的格式说明符中,双精度浮点型数的输出格式说明符是(   )。
选项:
A:%s
B:%ld
C:%c
D:%lf
答案: 【%lf
5、选择题:下列不是C语言特点的是?
选项:
A:语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
B:只有64个保留字(reserved keywords),使变量、函数命名有更多弹性。
C:不同的变量类型可以用结构体(struct)组合在一起。
D:C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
答案: 【只有64个保留字(reserved keywords),使变量、函数命名有更多弹性。
6、选择题:

几乎没有不能用C语言实现的软件?
选项:
A:错
B:对
答案: 【

7、选择题:

C编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等
选项:
A:错
B:对
答案: 【

8、选择题:

Dev C++是一个开源的编程软件
选项:
A:对
B:错
答案: 【

9、选择题:

编程环境包括编辑程序(Edit)、编译(Compile)、调试(Debug)等过程对吗?
选项:
A:对
B:错
答案: 【

10、选择题:

任何程序都有主函数吗?
选项:
A:错
B:对
答案: 【

第二章 章节测试

1、选择题:

i=3,j=i++;执行运算后i和j的值为?
选项:
A:i=3,j=4
B:i=4,j=4
C:i=4,j=3
D:i=3,j=3
答案: 【i=4,j=3

2、选择题:

下列函数在屏幕上输出的结果是?

# include <stdio.h> 

int main(void )

 printf(“学号 姓名 班级\n”);

 return 0;

}
选项:
A:“学号 姓名 班级\n”
B:学号班级姓名
C:学号 姓名 班级
D:“学号 姓名 班级”
答案: 【学号 姓名 班级

3、选择题:

下列函数在屏幕上输出的结果是?

# include <stdio.h> 

int main(void )

 printf(“****\n***\n**\n*\n”);

 return 0;

}
选项:
A:****

***

**

*

B:****\n***\n**\n*\n
C:**** \*** ** *
D:“****\n***\n**\n*\n”
答案: 【****

***

**

*


4、选择题:

关于关系运算,下列说法正确的是?
选项:
A:>=和==的优先级相同。
B:关系运算符的优先级低于赋值运算符
C:关系表达式“a>b”的值为“真”,表达式的值为0。
D:关系表达式的值是一个逻辑值,即“真”或“假”。
答案: 【关系表达式的值是一个逻辑值,即“真”或“假”。

5、选择题:

下列运算符,优先级最高的是?
选项:
A:||
B:>
C:

 &&

D: 
答案: 【

 &&


6、选择题:

关于if-else 语句,下列说法错误的是?
选项:
A:if语句后面只能加逻辑表达式。
B:else总是与它上面的,最近的,同一复合语句中的,未配

对的if语句配对。

C:if和else数目不同时,可以加花括号来确定配对关系。
D:if语句中可嵌套一个或多个if语句。
答案: 【if语句后面只能加逻辑表达式。
7、选择题:

关于scanf()函数,说法正确的是?
选项:
A:scanf()函数中“d”是用来输入无符号的十进制整数的格式字符。
B:scanf()函数中“u”是用来输入有符号的十进制整数的格式字符。
C:A. scanf()函数中的“格式控制”后面应当是变量名。
D:scanf()函数中“u”是用来输入无符号的十进制整数的格式字符。
答案: 【scanf()函数中“u”是用来输入无符号的十进制整数的格式字符。

8、选择题:

语句for(i=1;i<=100;i++) sum=sum+i; 的功能是?
选项:
A:1~100以内所有偶数的和
B:1~100最大的数的值。
C:1~100以内所有奇数的和
D:1~100以内所有整数的和
答案: 【1~100以内所有整数的和

9、选择题:

关于函数,下列说法正确的是?
选项:
A:函数可以嵌套定义
B:同一个函数可以被一个或多个函数调用任意多次。
C:main函数和其他函数一样,可以互相调用。
D:一个C程序只能由一个函数构成。
答案: 【同一个函数可以被一个或多个函数调用任意多次。

10、选择题:

关于函数的类型,下列说法正确的是?
选项:
A:在调用被调用函数时,主调函数不向被调用函数传递数据。
B:标准函数,即库函数。这是由用户自己定义的。
C:用户可以自己定义函数。
D:在调用无参函数时,主调函数向被调用函数传递数据。
答案: 【用户可以自己定义函数。

第三章 章节测试

1、选择题:

标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。
选项:
A:错
B:对
答案: 【】[$]

2、选择题:

下列是输出显示字符‘a’的八进制ASCII码的语句,正确的是(   )。
选项:
A:printf(“%o\n”, ‘a’);
B:printf(“%d\n”, ‘a’);
C:printf(“%c\n”, ‘a’);
D:printf(“%s\n”, ‘a’);
答案: 【printf(“%o\n”, ‘a’);

3、选择题:

C语言中合法的字符常量是    
选项:
A:110
B:n
C:‘\n’
D: n
答案: 【‘\n’

4、选择题:

表达式1/5+3%4+4.5/5的值是    
选项:
A:3.9
B:3.900000
C:

1.100000

D:1.85
答案: 【3.900000
5、选择题:

有以下程序:

 

main( )

{int  m;

m=10;

printf(“%d\n”,(–m*3/5)); 

}

 

程序运行后的输出结果是    
选项:
A:4
B:5
C:6
D:7
答案: 【5

6、选择题:

表达式(int)(1/3+.5*3+5%3) 的计算结果为    
选项:
A:2
B:7
C:3
D:1
答案: 【3

7、选择题:

下列不正确的转义字符是       
选项:
A:\0 
B: \\
C:074
D:\’
答案: 【074

8、选择题:

无符号基本整型的数据类型符为              ,双精度实型数据类型符为        ,字符型数据类型符为         
选项:
A:double      char    unsigned int

B: char    unsigned int    double  
C: chara    unsignedint    double  
D:unsigned int     double      char
答案: 【unsigned int     double      char
9、选择题:

printf(“%c,%d”,’a’, ‘a’);的输出结果是        
选项:
A:a,97
B:97  a 
C: a  97    
D:97,a
答案: 【a,97

10、选择题:

下列格式符中,哪一个可以用于以八进制形式输出整数       
选项:
A:%o
B:%8d
C:%ld
D:%d
答案: 【%o

第四章 章节测试

1、选择题:

以下运算符中,优先级最高的运算符是(        ).
选项:
A:>=
B:*=
C:+
D:(类型)
答案: 【(类型)

2、选择题:

执行下列程序段后,m的值是(        ).

 int w=2,x=3,y=4,z=5,m;

  m=(w<x)?w:x;

  m=(m<y)?m:y;

  m=(m<z)?m:z;

选项:
A:3
B:4
C:2
D:5
答案: 【2

3、选择题:

对下述程序,(        )是正确的判断.

        #include<stdio.h>

        void main()

        {int  x,y;

        scanf(“%d,%d”,&x,&y);

        if(x>y)

        x=y;y=x;

        else

        x++;y++;

        printf(“%d,%d”,x,y);}
选项:
A:输入数据4和3,则输出4和4
B:语法错误,不能通过编译
C:输入数据4和3,则输入3和4
D:输入数据3和4,则输入4和5
答案: 【语法错误,不能通过编译

4、选择题:

两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是(        ).

        #include <stdio.h>

        void main( )

        {  int x; 

           scanf(” %d “, &x);

           if(x++>5) printf(” %d”,x);

           else         printf(” %d\n”, x–);  }
选项:
A:6和4
B:7和5
C:7和4
D:6和3
答案: 【7和5

5、选择题:

执行下列语句后的输出为(        ).

 int j=-1;

 if(j<=1) 

     printf(“****\n”);

 else     

     printf(“%%%%\n”);
选项:
A:****
B:%%%%
C:%%%%c
D:有错,执行不正确
答案: 【****

6、选择题:

为了避免在嵌套的条件语句if···else中产生二义性,C语言规定:else子句总是与(        )配对.
选项:
A:其之前最近的if
B:缩排位置相同的if
C:同一行上的if
D:其之后最近的if
答案: 【其之前最近的if

7、选择题:

C语言的switch语句中case后(        ).
选项:
A:只能为常量
B:可为任何量或表达式
C:只能为常量或常量表达式
D:可为常量或表达式或有确定值的变量及表达式
答案: 【只能为常量或常量表达式

8、选择题:

void main()

{

    int x=1,a=0,b=0;

    switch (x)

    { 

        case  0: b++;

        case  1: a++;

        case  2: a++;b++;

    }    printf(“a=%d,b=%d”,a,b);

}

该程序的输出结果是(        ).
选项:
A:1,1
B:2,1
C:1,0
D:2,2
答案: 【2,1

9、选择题:

有以下程序

        main()

        {  int a =5,b =4,c= 3,d= 2;

        if (a> b> c)

              printf(” %d\n”,d);

             else if ((c-1> = d) = = 1)

                   printf(” %d\n”,d+ 1);

        else  

           printf(” %d\n”,d + 2);}

执行后输出结果是(        ).
选项:
A:编译时有错,无结果
B:4
C:3
D:2
答案: 【3

10、选择题:

a=1、b=2、c=5、d=5时,执行下面的程序后,x的值是(        ).

        if(a<b)

             if(c<d)x=1;

             else

             if(a<c)

                if(b<d)x=2;

                else x=3;

             else x=6;

        else x=7;
选项:
A:1
B:6
C:2
D:3
答案: 【2

第五章 章节测试

1、选择题:

对于while(!E) s;,若要执行循环体语句s,则E的数值应为     
选项:
A:E不等于1
B:E等于0
C:E等于1
D:E不等于0
答案: 【E等于0

2、选择题:

下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。

#include <stdio.h>

main()

{

int n,sum=0;

n=2345;

do{

sum=sum+     ;

n=n/10;

}while(n);

printf(“sum=%d”,sum);

}
选项:
A:n%10
B:n/10
C:(n/10)*(n/10)

 
D:(n%10)*(n%10)
答案: 【(n%10)*(n%10)
3、选择题:

对以下程序段,循环体执行的次数是     

int k=0;

while(k=1)  k++;



选项:
A:执行一次
B:有语法错误,不能执行
C:无数次
D:一次也不执行

 
答案: 【无数次
4、选择题:

下面程序段的执行结果是    

a=1;b=2;c=2;

while(a<b<c ) {t=a;a=b;b=t;c-;}

printf(“%d,%d,%d”,a,b,c);
选项:
A:1,2,0
B:2,1,1
C:1,2,1
D:2,1,0
答案: 【1,2,0

5、选择题:

下列叙述中正确的是(      )。
选项:
A:用do-while语句构成的循环,在while后的表达式为零时结束循环
B:do-while语句构成的循环,在while后的表达式为非零时结束循环
C:do-while语句构成的循环不能用其他语句构成的循环来代替
D:do-while语句构成的循环只能用break语句退出
答案: 【用do-while语句构成的循环,在while后的表达式为零时结束循环

6、选择题:

执行int x=-1;do {x=x*x;} while(x==0);循环时,下列说法正确的是(      )。
选项:
A:循环体将执行无限次
B:循环体将执行一次
C:系统将提示有语法错误
D:循环体将执行两次
答案: 【循环体将执行一次

7、选择题:

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

int main()

{int num=0,s=0;

while(num<=2)

      { num++;

       s+=num;

      }

            printf(“%d\n”,s);

}

A)10    B)6                C)3     D)1
选项:
A:1
B:3
C:10
D:6  
答案: 【6  

8、选择题:

S=0,执行循环语句“for(i=1;i<=10;i=i+3) s=s+i;”后,i的值为(    )。
选项:
A:10  
B:13
C:12
D:11
答案: 【13

第六章 章节测试

1、选择题:

以下正确的函数形式是     

   
选项:
A: double fun(int x,int y)

{ z=x+y; return z; }

B:double fun(int x,int y)

{ double z; z=x+y; return z; }

C:double fun(int x,y)

{ int z; return z; }

 
D:double fun(x,y)

{ int x,y; double z; z=x+y; return z; }

答案: 【double fun(int x,int y)

{ double z; z=x+y; return z; }


2、选择题:

若调用一个函数,且此函数中没有return语句,则正确的说法是    
选项:
A:该函数能返回一个用户所希望的函数值
B:该函数返回若干个系统默认值
C:该函数没有返回值
D:

该函数返回一个不确定的值
答案: 【
该函数返回一个不确定的值

3、选择题:

以下正确的说法是   
选项:
A:只有当实参和与其对应的形参同名时才共占用存储章
B:形参是虚拟的,不占用存储章
C:实参和与其对应的形参各占用独立的存储章
D:实参和与其对应的形参共占用一个存储章
答案: 【实参和与其对应的形参各占用独立的存储章

4、选择题:

下面函数调用语句含有实参的个数为    

func((exp1,exp2),(exp3,exp4,exp5));
选项:
A:5
B:1
C:2
D:4
答案: 【2

5、选择题:

若使用一维数组名作函数实参,则以下正确的说法是    
选项:
A:实参数组类型与形参数组类型可以不匹配
B:必须在主调函数中说明此数组的大小
C:实参数组名与形参数组名必须一致
D:在被调函数中,不需要考虑形参数组的大小
答案: 【在被调函数中,不需要考虑形参数组的大小

6、选择题:

凡是函数中未指定存储类型的局部变量,其隐含的存储类别为    
选项:
A:自动(auto
B:外部(extern
C:寄存器(register
D:静态(static
答案: 【自动(auto

7、选择题:

执行下列程序:

#define M(x,y)  (x*y)

i=3;

i=M(i,i+1)-8;

变量i的值应为    
选项:
A:5
B:3
C:2
D:4
答案: 【2

8、选择题:

执行下列程序,正确的输出是    

int x=3,y=5;

void swap()

{  int a;

a=x;  x=y;  y=a;

}

int main()

{  int x=5,y=7;

swap();

printf(“%d,%d\n”,x,y);

  return 0;

}
选项:
A:5,3
B:5,7
C:3,5
D:7,5
答案: 【5,7

第七章 章节测试

1、选择题:

下列数组定义语句中,正确的是(   )。

选项:
A:int a[][3]= {1,2,3,4,5,6};
B:static int a[][]={{1,2,3},{4,5,6}};
C:char a[2]「3]=’a’,’b’;
D:int a[][]={1,2,3,4,5,6};     
答案: 【int a[][3]= {1,2,3,4,5,6};

2、选择题:

设有下列数据定义语句,则数组元素x[i]的值是(   
int i= 3,x[4]={1,2,3};

选项:
A:1
B:2
C:3
D:
答案: 【

3、选择题:

运行下列程序的输出结果是(       

main()

{

int a[]={1,2,3,4,5},i;

for(i=1;i<5;i++)

  printf(“%d”,a[i]-a[i-1]);

}

选项:
A:1111   
B:222
C:11111  
D:111   
答案: 【1111   

4、选择题:

若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(        ).
选项:
A:4
B:3
C:2   
D:无确定值
答案: 【3

5、选择题:

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

#include <stdio.h>

#include <string.h>

main()

{

char a[10]=”abcd”;

    printf(“%d,%d\n”,strlen(a),sizeof(a));

}

 
选项:
A:7,
B:4,10
C:10,10
D:8,8   
答案: 【4,10

6、选择题:

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

#include <stdio.h>

main()

{

int b[3][3]={0,1,2,0,1,2,0,1,2};

int i,j,t=1;

for(i=0;i<3;i++)

 for(j=i;j<=i;j++)

   t+=b[i][b[j][i]];

  printf(“%d\n”,t);

}
选项:
A:3
B:1
C:9
D:4
答案: 【4

7、选择题:

下面是对s的初始化,其中不正确的是    
选项:
A:char s[5]={“abc”};
B:char s[5]=“”;
C:char s[5]={‘a’,‘b’,‘c’};

 
D:char s[5]=“abcdef”;
答案: 【char s[5]=“abcdef”;
8、选择题:

下面程序段的运行结果是    

char c[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’};

printf(“%s”,c);
选项:
A:‘a’‘b’
B:ab c
C:cab 
D:ab
答案: 【ab

9、选择题:

对两个数组ab进行如下初始化

char a[]=“ABCDEF”;

char b[]={‘A’, ‘B’,‘C’,‘D’,‘E’,‘F’};

则以下叙述正确的是    
选项:
A:a数组比b数组长度长
B:ab长度相同
C:ab数组完全相同
D:ab中都存放字符串
答案: 【a数组比b数组长度长

10、选择题:

有两个字符数组ab,则以下正确的输入格式是    
选项:
A:gets(a,b);
B:gets(“a”),get(“b”);
C:scanf(“%s %s”,&a,&b);
D:scanf(“%s %s”,a,b);
答案: 【scanf(“%s %s”,a,b);

第八章 章节测试

1、选择题:

以下程序有错,错误原因是    _。

int main()

   {int *p,i;

char *q,ch;

p=&i;   q=&ch;   *p=40;   *p=*q;

 ┆

}
选项:
A:q没有指向具体的存储章,所以*q没有实际意义
B:p和q的类型不一致,不能执行*p=*q;语句
C:q虽然指向了具体的存储章,但该章中没有确定的值,所以不能执行*p=*q;

  语句
 
 
D: *p中存放的是地址值,因此不能执行*p=40;语句
答案: 【p和q的类型不一致,不能执行*p=*q;语句
2、选择题:

已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的正确输出结果是       。

 void print_value(int *x)

  {printf(%d\n,++*x);   }
选项:
A:26
B:24
C:23
D:25
答案: 【26

3、选择题:

4、下面程序的运行结果是    

#include <stdio.h>

int main()

{ static 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));

 }
选项:
A:有语法错
B:ga
C:gae
D:Language
答案: 【gae

4、选择题:

下面程序的运行结果是    

#include <stdio.h>

#include <string.h>

main()

{char *p1,*p2,str[50]=abc;

 p1=abc;p2=abc;

 strcpy(str+1,strcat(p1,p2));

 printf(%s\n,str);

}
选项:
A:aabcabc
B:abcabcabc
C:bcabcabc
D:cabcabc
答案: 【aabcabc

5、选择题:

若有说明:char *language[]={FORTRAN,BASIC,PASCAL,JAVA,C};

则表达式*language[1]>*language[3]比较的是    

选项:
A:字符串FORTRAN和字符串PASCAL
B:字符F和字符P
C:字符B和字符J
D:字符串BASIC和字符串JAVA
答案: 【字符串BASIC和字符串JAVA

6、选择题:

若有说明语句

char a[]=It is mine;      char *p=It is mine;

则以下不正确的叙述是_    
选项:
A:a中只能存放10个字符
B:p指向另外的字符串时,字符串的长度不受限制
C:a+1表示的是字符t的地址
D:p变量中存放的地址值可以改变
答案: 【a中只能存放10个字符

7、选择题:

以下程序调用fun函数求数组中最大值所在元素的下标。

#include <stdio.h>

void fun(int *s,int n, int *k)

{  int i;

for(i=0,*k=i;i<ni++)

 if(s[i]>s[*k])  _    

}

int main()

{  int a[5]={1,8,3,6,9},k;

fun(a,5,&k);

printf(%d,%d\n,k,a[k]);

return 0;

}
选项:
A:k=i-s;
B:k=i;
C:*k=i-s;
D:*k=i;
答案: 【*k=i;

8、选择题:

有以下程序:

#include <stdio.h>

void fun(int *p, int *q)

{  int *t;

t=p;  p=q;   q=t;

}

int main()

{  int a=0,b=9;

fun(&a,&b);

printf(%d,%d\n,a,b);

return 0;

}

程序的输出结果是    

选项:
A:0,9
B:9,0
C:9,9
D:0,0
答案: 【0,9

9、选择题:

以下正确的定义语句和赋值语句是_    
选项:
A: double b[3][5],s[5][3],*q;  q=b;  s=q;
B: int b[10],*q;  char *s;  q=b;  s=b;
C:int b[3][5],(*p)[3],(*q)[5];  p=b;  q=b;
D:char b[3][5],*p[3];  p[0]=b[0];  p[2]=*b+4;
答案: 【char b[3][5],*p[3];  p[0]=b[0];  p[2]=*b+4;

第九章 章节测试

1、选择题:

有以下结构体定义:

struct example

{ int x;

int y; }v1;

则正确的引用或定义是(      
选项:
A: v1.x=10;
B:struct example v2={10};
C:example v2; v2.x=10;
D:struct v2; v2.x=10;   
答案: 【 v1.x=10;

2、选择题:

对于如下结构体定义,若对变量person的出生年份进行赋值,正确的赋值是(      

struct date

{ int year,month,day; 

};

struct worklist

{ char name[20];

  char sex;

  struct date birth;

}person;
选项:
A: year=1976    
B:person.year=1976
C:birth.year=1976   
D:person.birth.year=1976   
答案: 【person.birth.year=1976   

3、选择题:

根据下述定义,可以输出字符‘A’的语句是     

struct person

{ char name[11];

struct 

{ char name[11];

    int age;

}other;

};

struct person man[10]={ {“Jone”,{“Paul”,20}},{“Paul”,{“Mary”,18}},

{“Mary”,{“Adam”,23}},{“Adam”,{“Jone”,22}}

};
选项:
A:printf(“%c”,other.name[0]);
B:printf(“%c”,man[2].(* other[0]));
C:printf(“%c”,man[3].name);
D:printf(“%c”,man[2].other.name[0]);
答案: 【printf(“%c”,man[2].other.name[0]);

4、选择题:

若有以下程序段:

struct st

{ int n;

struct st *next; };

struct st a[3]={5,&a[1],7,&a[2],9, ‘\0’} ,*p=a;

则值为6的表达式为     

选项:
A:p++->n    
B: (*p).n++  
C:++p->n
D:p->n++  
答案: 【++p->n

5、选择题:

运行下列程序段,输出结果是(     

  struct country

      { int num;

        char name[10];

       }x[5]={1,”China”,2,”USA”,3,”France”,4, “England”,5, “Spanish”};

  struct country *p;

  p=x+2;

   printf(“%d,%c”,p->num,(*p).name[2]);

选项:
A:3,a
B:2,USA
C:4,g   
D: 5,Spanish
答案: 【3,a

6、选择题:

定义以下结构体数组

  struct c

     { int x;

       int y;

      }s[2]={1,3,2,7};

语句printf(“%d”,s[0].x*s[1].x)的输出结果为(      

选项:
A:2
B:14 
C:21
D: 6
答案: 【2

7、选择题:

定义以下结构体类型

struct  student

{char  name[10];

float score[50];

double average;

}stud1;

stud1占用内存的字节数是   
选项:
A:218
B:64
C:7
D:228
答案: 【218

8、选择题:

能在一个存储区内处理不同的类型的数据叫结构
选项:
A:对
B:错
答案: 【

9、选择题:

在编译时对结构类型不分配空间,只能对结构体变量分配空间。
选项:
A:错
B:对
答案: 【

10、选择题:

结构一旦定义,系统就给它分配所需的内存章。
选项:
A:对
B:错
答案: 【

第十章 章节测试

1、选择题:

以下叙述中错误的是(     )。
选项:
A:C语言中对二进制文件的访问速度比文本文件快
B:C语言中的文本文件以ASCII码形式存储数据
C:C语言中,随机文件以二进制代码形式存储数据    
D:语句 FILE  fp; 定义了一个名为fp的文件指针
答案: 【语句 FILE  fp; 定义了一个名为fp的文件指针

2、选择题:

有以下程序
   #include    <stdio.h>
   main()
   { FILE  *fp;      int  i, k, n;
     fp=fopen(“data.dat”, “w+”);
     for(i=1; i<6; i++)
     {  fprintf(fp,”%d   “,i);
        if(i%3==0)  fprintf(fp,”\n”);
     }
     rewind(fp);
     fscanf(fp, “%d%d”, &k, &n);  printf(“%d %d\n”, k, n);
     fclose(fp);
   }
  程序运行后的输出结果是 (    )。
选项:
A:1  2
B:0  0  
C:1  4   
D:123  45  
答案: 【1  2

3、选择题:

以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是(      )。

选项:
A:ftell(fp)
B:feof(fp)
C:rewind(fp)
D:fgetc(fp)
答案: 【rewind(fp)

4、选择题:

以下程序
  #include  “stdio.h”
  void WriteStr(char  *fn,char  *str)
  {
     FILE  *fp;
     fp=fopen(fn,”W”);
     fputs(str,fp);
     fclose(fp);
  }
  main()
  {
     WriteStr(“t1.dat”,”start”);
     WriteStr(“t1.dat”,”end”);
  }
  程序运行后,文件t1.dat中的内容是 (      )。
选项:
A:end
B:startend
C:endrt
D:start
答案: 【end

5、选择题:

有如下程序
  #include <stdio.h>
  main()
  {FILE  *fp1;
     fp1=fopen(“f1.txt”,”w”);
     fprintf(fp1,”abc”);
     fclose(fp1);
  }
  若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为(      )。
选项:
A:abcd    
B:abc
C: abcgood
D:goodabc   
答案: 【abc

6、选择题:

有以下程序
  #include <stdio.h>
  main( )
  {  FILE *fp;  int i,k=0,n=0;
     fp=fopen(“d1.dat”,”w”);
     for(i=1;i<4;i++)   fprintf(fp,”%d”,i);
     fclose(fp);
     fp=fopen(“d1.dat”,”r”);
     fscanf(fp,”%d%d”,&k,&n);   printf(“%d %d\n”,k,n);
     fclose(fp);
  }
  执行后输出结果是(      )。
选项:
A:123  0    
B: 1  23    
C: 1  2    
D:  0   0
答案: 【123  0    

7、选择题:

有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)
  #include <stdio.h>
  main( )
  { FILE *fp;  int i,a[4]={1,2,3,4},b;
    fp=fopen(“data.dat”,”wb”);
    for(i=0;i<4;i++)  fwrite(&a[i],sizeof(int),1,fp);
    fclose(fp);
  fp=fopen(“data.dat 

“,”rb”);
  fseek(fp,-2L*sizeof(int).SEEK_END) ;
  fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/
  fclose(fp);
  printf(“%d\n”,B) ;
  }
  执行后输出结果是(      )。
选项:
A:
B:3
C:4    
D:
答案: 【3

8、选择题:

fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为(     )。
选项:
A:-1       
B:一个非0值
C:
D:1     
答案: 【一个非0值

9、选择题:

下列关于C语言数据文件的叙述中正确的是(      )。

选项:
A:文件由二进制数据序列组成,C语言只能读写二进制文件
B:文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
C:文件由ASCII码字符序列组成,C语言只能读写文本文件
D:文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
答案: 【文件由ASCII码字符序列组成,C语言只能读写文本文件

10、选择题:

以下叙述中不正确的是 (      )。
选项:
A:C语言中的文本文件以ASCⅡ码形式存储数据
B:C语言中,顺序读写方式不适用于二进制文件
C:C语言中对二进制文件的访问速度比文本文件快
D:C语言中,随机读写方式不适用于文本文件
答案: 【C语言中,顺序读写方式不适用于二进制文件】[/$]

《2021知到答案 C语言程序设计基础(专业校内课) 智慧树网课章节测试答案》由本站整理发布,如若转载,请注明出处:http://www.tiku56.com/zhihuishu/271718.html