网课知到C语言程序设计智慧树答案

网课查题公众号

1
【单选题】(2分)
用计算机解决问题的步骤一般为( )
①编写程序②设计算法③分析问题④调试程序
A.①②③④
B.③④①②
C.②③①④
D.③②①④
2
【单选题】(2分)
C语言的基本构成单位是( )。
A.函数
B.函数和过程
C.超文本过程
D.子程序
3
【单选题】(2分)
C语言规定,必须用( )作为主函数名。
A.在执行C程序时不是从main函数开始的
B.C程序书写格式严格限制,一行内必须写一个语句
C.C程序书写格式自由,一个语句可以分写在多行上
D.程序书写格式严格限制,一行内必须写一个语句,并要有行号
4
【单选题】(2分)
编译程序可以将源程序翻译成( )
A.目标程序
B.编辑程序
C.连接程序
D.可执行程序
5
【多选题】(2分)
下面关于算法的说法正确的是( )
A.算法必须有输出
B.算法就是程序
C.算法不一定有输入
D.算法必须在有限的步骤结束
6
【多选题】(2分)
算法应该具有那些重要的特征( )
A.有穷性
B.确定性
C.输入、输出
D.可行性
7
【判断题】(2分)
计算机是人造的,所以,它和人脑解决问题没有什么区别。( )
A.对
B.错
8
【判断题】(2分)
算法的每一个步骤都必须要有确切的定义,不能有二义性。( )
A.对
B.错
9
【判断题】(2分)
在C程序中,注释说明只能位于一条语句的后面。( )
A.对
B.错
10
【判断题】(2分)
在C程序中,每行只能写一条语句。( )
A.对
B.错

1
【单选题】(2分)
判断char类型的变量c是否为大写字母的正确表达式为( )。
A.’A'<=c<=’Z’
B.(c>=’A’)&(c<=’Z’)
C.(‘A'<=c)AND(‘Z’>=c)
D.(c>=’A’)&&(c<=’Z’)
2
【单选题】(2分)
若有语句int a=1,b=2,c=3;则以下值为0的表达式是( )。
A.’a’&&’b’
B.a<=b
C.(a>b)||(b<c)
D.(!(a+b)==c&&a)
3
【单选题】(2分)
在C语言中,要求参加运算的数必须是整数的运算符是 ( )。
A./
B.*
C.%
D.=
4
【单选题】(2分)
使用语句scanf(“x=%f,y=%f”,&x,&y);
输入变量x、y的值(□代表空格),正确的输入是 ( )。
A.1.25,2.4
B.1.25□2.4
C.x=1.25,y=2.4
D.x=1.25□y=2.4
5
【单选题】(2分)
已知 int a = 3;执行 a += a -= a * a 后,变量a的值 ( )。
A.6
B.9
C.-12
D.0
6
【多选题】(2分)
C语言提供的合法的数据类型关键字是 ( )。
A.float
B.int
C.integer
D.Char
7
【判断题】(2分)
表达式i++与++i在任何场合功能完全相同。( )
A.对
B.错
8
【判断题】(2分)
scanf和printf都是C系统提供的标准输入输出函数。( )
A.对
B.错
9
【判断题】(2分)
在scanf(“%d,%d”,&a,&b)函数中,可以使用一个或多个空格作为两个输入数之间的间隔。( )
A.对
B.错
10
【判断题】(2分)
C语言中可以把一个字符串赋给一个字符变量。( )
A.对
B.错
1
【单选题】(2分)
C语言中,逻辑“真”等价于( )。
A.大于零的数
B.大于零的整数
C.非零的数
D.非零的整数
2
【单选题】(2分)
若x=0,y=3,z=3,以下表达式值为0的是( )。
A.!x
B.x<y? 1:0
C.x%2&y==z
D.y=x||z/3。
3
【单选题】(2分)
为了避免嵌套的if-else语句的二义性,C语言规定else总是与( )组成配对关系。
A.缩排位置相同的if
B.在其之前未配对的if
C.在其之前未配对的最近的if
D.同一行上的if
4
【单选题】(2分)
以下关于运算符优先顺序的描述中正确的是( )。
A.关系运算符<算术运算符<赋值运算符<逻辑与运算符
B.逻辑与运算符<关系运算符<算术运算符<赋值运算符
C.赋值运算符<逻辑与运算符<关系运算符<算术运算符
D.算术运算符<关系运算符<赋值运算符<逻辑与运算符
5
【单选题】(2分)
选择出合法的if语句(设int x,a,b,c;)( )。
A.if(a=b) c++;
B.if(a=<b) c++;
C.if(a<>b) c++;
D.if(a=>b) c++;
6
【单选题】(2分)
当a=1,b=2,c=4,d=3时,执行完下面一段程序后x的值是( )。
if (a<b)
if (c<d) x=1;
else
if (a<c)
if (b<d) x=2;
else x=3;
else x=4;
else x=5;
A.1
B.2
C.3
D.4
7
【单选题】(2分)
执行以下程序段后,变量x,y,z的值分别为( )。
int a=1,b=0, x, y, z;
x=(–a==b++) ? –a : ++b;
y=a++;
z=b;
A.x=0,y=0,z=0
B.x= -1,y= -1,z= 1
C.x=0,y=1,z=0
D.x= -1,y= 2, z= 1
8
【单选题】(2分)
若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是( )。
a=1;b=2;c=3;d=4;
w=(a<b)?a :b;
w=(w<c)?w :c;
w=(w<d)?w :d;
A.1
B.2
C.3
D.4
9
【单选题】(2分)
以下程序的输出结果是( )。
#include“stdio.h”
main()
{
int a=5, b=4, c=6, d;
printf(”%d\n”, d=a>b? a>c?a:c :b);
}
A.5
B.4
C.6
D.不确定
10
【单选题】(2分)
若a、b、c1、c2、x、y均为整型变量,正确的switch 语句是( )。

A.switch (a+b);
{ case 1: y=a+b; break;

case 0: y=a-b; break;

}

B.switch a
{ case c1: y=a-b; break;

case c2: x=a*d; break;

default: x=a+b;

}

C.switch (a*a+b*b)
{ case 3:

case 1: y=a+b; break;

case 3: y=b-a; break;

}

D.switch(a-b)
{ default: y=a*b; break;

case 3: x=a+b; break;

case 10: case 11: y=a-b; break;

}
1
【单选题】(2分)
以下语句有语法错误的是( )。
A.while (1);
B.for (x=10;x>0;x–);
C.for(; ;);
D.int x=1;y=2;z=3;
2
【单选题】(2分)
代码while(1) printf(“hello”)中,while循环的循环次数是( )。
A.1
B.0
C.无数次
D.无法确定
3
【单选题】(2分)
有语句for (i=2,j=8; i!=j;i++,j– ),循环执行完成后i的值是( )。
A.5
B.4
C.8
D.2
4
【单选题】(2分)
for语句可以代替下列哪个语句( )。
A.do…while
B.while
C.都可以
D.都不可以
5
【单选题】(2分)
当循环条件不满足,需要跳出整个循环时,可以使用下列哪个语句( )。
A.break
B.continue
C.goto
D.都可以
6
【判断题】(2分)
循环体中的语句无论有几条,都需要用括号括起来。( )
A.对
B.错
7
【判断题】(2分)
循环体中应有使得循环趋于结束的语句。( )
A.对
B.错
8
【判断题】(2分)
break语句和continue语句都能改变循环的执行状态。( )
A.对
B.错
9
【判断题】(2分)
执行循环语句for(s=0, i=1; i<=10; i=i+3) s+=i;后,i的值为是,{13}。( )
A.对
B.错
10
【判断题】(2分)
#include <stdio.h>
int main( )
{ int sum=10,n=1;
while(n<3) {sum=sum-n; n++; }
printf(“%d,%d”,n,sum);
}
该程序的输出结果为{ 3,7}。( )
A.对
B.错
1
【单选题】(2分)
下列正确的数组定义与初始化语句是( )。
A.int N=5,b[N][N];
B.int a[1][2]={{1},{3}};
C.int c[2][]={{1,2},{3,4}};
D.int d[][2]={{1,2},{3,4}};
2
【单选题】(2分)
以下能对一维数组a进行初始化的语句是( )。
A.int a[5]=(0,1,2,3,4);
B.int a(5)={};
C.int a[3]={0,1,2};
D.int a{5}={10*1};
3
【单选题】(2分)
下列关于数组int a[5]的引用正确的是( )。
A.a[0];
B.a[5];
C.a(0);
D.a(5);
4
【单选题】(2分)
设有数组int a[12]={1,4,7,10,2,5,8,11,3,6,9,12}; i=10; 则a[a[i]]元素数值是( )。
A.10
B.9
C.6
D.5
5
【单选题】(2分)
若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为( )。
A.2
B.3
C.4
D.无法确定
6
【判断题】(2分)
定义数组时,可以不用指定其长度。( )
A.对
B.错
7
【判断题】(2分)
引用数组元素时,下标可以从0或1开始。( )
A.对
B.错
8
【判断题】(2分)
C语言中的字符串是以字符数组的形式处理的。( )
A.对
B.错
9
【判断题】(2分)
若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[2][1]得到的初值是{6}。 ( )
A.对
B.错
10
【判断题】(2分)
在C语言中,以{ ‘\0’}作为字符串结束标志。( )
A.对
B.错
1
【单选题】(10分)
以下程序有语法错误,有关错误原因的正确的说法是( )。

int main()

{ int G=5, k;

void prt_char();

…..

k=prt_char(G);

…..

}

A.变量名不能用大写字母
B.语句void prt_char();有错,它是函数调用语句,不能用void说明
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
2
【单选题】(10分)
若有以下调用语句,则正确的fun函数首部是( )。

int main()

{ int a;

float x;

fun(x,a);

}

A.void fun(int n,float y[])
B.void fun(int n,float y
C.void fun(float y,int n
D.void fun(int x,float a)
3
【单选题】(10分)
函数f定义如下,执行语句” m=f(3) ; ”后,m的值应为( )。
int f(int k)
{ if(k==0||k==1) return 1;
else return k+f(k-1);
}
A.6
B.8
C.13
D.5
4
【单选题】(10分)
以下程序的输出结果是( )。
int a,b;
void fun()
{ a=100;b=200; }
int main()
{ int a=5,b=7;
fun();
printf(“”%d%d\n””,a,b);
return 0;
}
A.57
B.200100
C.75
D.100200
5
【单选题】(10分)
以下程序的输出结果是(B)。
int fun( int p)
{ static int d=5;
d+=p;
return ( );
}
int main()
{ printf(“”%d””,fun(1));
printf(“”%d””,fun(2));
return 0;
}
A.69
B.68
C.66
D.67
6
【单选题】(10分)
若程序中定义了以下函数double myadd(double a,double B) { return (a+B) ;} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是( )。

A.double myadd(double x,double y);
B.double myadd(double a,B) ;
C.double myadd(double b,double A) ;
D.double myadd(double,double);
7
【判断题】(10分)
函数中可以没有return语句,也可以有多条return语句。( )
A.对
B.错
8
【判断题】(10分)
函数必须有返回值。( )
A.对
B.错
9
【判断题】(10分)
函数f可以用f(f(x))形式调用,这种调用形式是递归调用。( )
A.对
B.错
10
【判断题】(10分)
如果在函数中定义一个变量,则该变量只在该函数中有效。( )
A.对
B.错
1
【单选题】(2分)
若有定义“int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;”,则值为6的表达式( )。
A.*p+6
B.*(p+6)
C.*p+=5
D.P+5
2
【单选题】(2分)
以下程序的输出结果是( )。
Int main(void)
{ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;
print(“%d\n”,*p+*q);
return 0; }
A.16
B.10
C.8
D.6
3
【单选题】(2分)
设int i,*p= &i;以下正确的语句是( )。
A.*p = 10
B.i = p
C.i += p
D.p = 2*p+1
4
【单选题】(2分)
设char s[10],*p = s; 以下不正确的语句是( )。
A.p = s + 5
B.s = p + s
C.s[2]=p[4]
D.*p = s[0]
5
【单选题】(2分)
以下程序的执行结果是( )。
#include “stdio.h”
void main()
{
int a[ ] = {1,2,3,4,5,6};
int *p;
p = a;
*(p+3) += 2;
printf(“%d,%d\n”,*p,*(p+3));
}
A.1,3
B.1,6
C.3,6
D.1,4
6
【单选题】(2分)
以下fnStrcomp( )函数的功能是按词典顺序比较两个字符串s和t的大小。如果s大于t,则返回正值,等于则返回0,小于则返回负值,横线处正确的选项是( )。
int fnStrcomp(char *s, char *t)
{
for(_______; *s == *t; ______)
if(*s == ‘\0′)return (0);
return (*s – *t);
}
A.s++
B.t++
C.t++;s++
D.s++,t++
7
【判断题】(2分)
以下程序的执行结果为以下内容。
#include <stdio.h>
void main()
{
int *p;
int a[2]={1};
p = &a[0];
*p = 2;
p++;
printf(“%d,”, *p);
p–;
printf(“%d\n”, *p);
}
,{ 0,2}
( )
A.对
B.错
8
【判断题】(2分)
以下程序的执行结果为以下内容。
#include <stdio.h>
struct stru
{
int x;
char c;
};
void fun(struct stru *k);
void main()
{
struct stru a={10,’x’}, *p = &a;
fun(p);
printf(“%d,%c\n”,a.x, a.c);
}
void fun(struct stru *b)
{
b->x = 20;
b->c = ‘y’;
}
,{20,y}
( )
A.对
B.错
9
【判断题】(2分)
以下程序是将”Hello” 逆向显示出来。填空的结果为以下内容 。
#include <stdio.h>
void fnPrintStr(char *p);
void main()
{
fnPrintStr(“Hello”);
}
void fnPrintDtr(char *string)
{
int i = 0 ;
char *str = string;
while(str[i])i++;
i–;
while(i>=0)
{
printf(“%c”,str[i]);
_________________ ;
}
},{i–}
( )
A.对
B.错
10
【判断题】(2分)
下列程序的输出结果为以下内容。
#include <stdio.h>
void main()
{
int a[ ]={1,2,3,4,5,6};
int *p;
p=a;
printf(“%d %d %d %d\n”,*p,*(++p),*++p,*(p–));
printf(“%d %d\n”,*p,*(a+2));
},{3 3 2 1},{2 3}
( )
A.对
B.错
1
【单选题】(10分)
有如下的结构体定义语句:struct student{ int num }; 则能正确定义结构体变量的语句是( )。
A.struct student s1;
B.struct s1;
C.struct student;
D.student s1;
2
【单选题】(10分)
有如下的结构体定义语句:struct student{ int num }; 则能正确定义结构体数组的语句是( )。
A.struct student s[];
B.struct s[5] student;
C.struct student (5);
D.struct student s[5];
3
【单选题】(10分)
如下程序的输出是( )。
#include <stdio.h>
#include <string.h>
struct stud{ char name[10]; int score[2]; };
int main()
{ int i = 0;
struct stud t[4]={{ “Lisa”,98,87}, {“Tom”,89,86}, {“John”,68,79}, {“Lili”,94,90} };
printf(“%s \n”, t[1].name);
return 0;
}
A.Lisa
B.Tom
C.John
D.Lili
4
【单选题】(10分)
设有如下定义,则能输出’Z’的语句是( )。
struct person{ char name[9]; int age; };
struct person class[10]={ “Wang” , 17, “Zha n g” ,19, “M i n g” , 18, “L i u” , 20 };
A.printf(“%c\n”,class[ 2 ].name );
B.printf(“%c\n”,class[ 2 ].name[ 1] );
C.printf(“%c\n”,class[ 1 ].name[ 0] );
D.printf(“%c\n”,class[ 1 ].name[ 1] );
5
【单选题】(10分)
已知如下语句:
struct date{int y, m, d;};
struct student
{ int num;
char name[9];
struct date bir;
} stu, *p=&stu;
则错误的表达式是( )。
A.p->bir->y
B.p->bir.y
C.stu.bir.y
D.stu.name
6
【单选题】(10分)
以下程序的输出是( )。
#include <stdio.h>
struct st
{ int num;
char name[10];
int age;
}x[3]={{1,”zhang”,19},{2,”li”,20},{3,”wang”,21}},*p=x;
int main()
{ printf(“%s, %d\n”,(p+2)->name, (*p).age);
return 0;
}
A.zhang, 20
B.wang, 19
C.li, 20
D.li, 21
7
【判断题】(10分)
当定义一个结构体变量时,系统为它分配的内存空间是结构中各成员所需内存容量之和。( )
A.对
B.错
8
【判断题】(10分)
有如下的结构变量定义语句:struct student{ int num} stu; 则结构类型名为stu。( )
A.对
B.错
9
【判断题】(10分)
结构体成员的类型必须是基本数据类型。( )
A.对
B.错
10
【判断题】(10分)
p为指向结构体的指针,则 (*p).成员名 与 p->成员名 是等价的。( )
A.对
B.错
1
【单选题】(2分)
下列关于C语言数据文件的叙述中正确的是( )。
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
2
【单选题】(2分)
在C语言中,读写操作时会进行自动转换的文件是( )。
A.二进制文件和文本文件都不需要转换
B.二进制文件
C.文本文件
D.二进制文件和文本文件都需要转换
3
【单选题】(2分)
在C语言中,下面关于文件操作正确的叙述是( )。
A.对文件操作时需要先关闭文件
B.对文件操作时需要先打开文件
C.对文件操作时,必须先检查文件是否存在,然后再打开文件
D.对文件操作时打开和关闭文件的顺序没有要求
4
【单选题】(2分)
在C语言中,下面关于文件的存取方式正确的叙述是( )。
A.可以顺序存取,也可以随机存取
B.不可以顺序存取,但可以随机存取
C.可以顺序存取,但不可以随机存取
D.只能从文件的开头存取
5
【单选题】(2分)
下列语句可以向文本文件readme.txt尾部继续添加数据,则正确的打开文件语句是( )。
A.fp=fopen(“readme.txt”, “ab”);
B.fp=fopen(“readme.txt”, “a+”);
C.fp=fopen(“readme.txt”, “rb”);
D.fp=fopen(“readme.txt”, “w”);
6
【单选题】(2分)
地文件1.txt中存储内容为‘你好!python’,经过以下语句后文件中的内容为( )。
fp = open(‘./1.txt’,’wt+’); fp.write(‘Hello Wolrd’)
A.空
B.你好!python
C.Hello World
D.你好!pythonHello Wolrd
7
【单选题】(2分)
假设已经定义了文件指针 FILE *fp,并指向了temp.txt文件,即:FILE *fp = fopen(“temp.txt”, “w”);下列可以实现将“China”这一字符串写入到temp.txt文件的语句是( )。
A.fscanf(fp, “%s”, “China”);
B.fprintf(fp, “%s”, “China”);
C.fscanf(“%s”, “China”, fp);
D.fprintf(“%s”, “China”, fp);
8
【单选题】(2分)
文件打开模式,d:\有一个二进制文件file1.dat,以可读可写方式打开该文件,如果写入新的内容,内容会被追加到文件尾部。以下哪个语句是正确的?( )。
A.f=open(“d:\file1.dat”,”rb”)
B.f=open(“d:\file1.dat”,”wb”)
C.f=open(“d:\file1.dat”,”ab+”)
D.f=open(“d:\file1.dat”,”wb+”)
9
【单选题】(2分)
下列语句f = open(‘a1.txt’,’w’)打开文件的位置应该在( )。
A.C盘根目录下
B.D盘根目录下
C.Python安装目录下
D.与源文件在相同的目录下
10
【单选题】(2分)
关于文件指针,以下说法错误的是( )。
A.只有通过文件指针变量才能调用相应文件。
B.定义文件指针变量时,FILE必须大写。
C.一个文件指针变量只能对应一个文件。
D.一个文件指针变量可以同时对应多个文件。

作者: gong

为您推荐

发表回复