• 游客 购买了资源 某工程,施工合同中约定:工期19周;钢筋混凝土基础工程量增加超出15%时,结算时对超出部分按原价的90%调整单价。经总监理工程师批准的施工总进度计划如下图所示,其中A、C工作为钢筋混凝土基础工程,B、G工作为片石混凝土基础工程,D、E、F、H、I工作为设备安装工程,K、L、J、N工作为设备调试工作。
  • 游客 下载了资源 2024年秋江苏开放大学营销与策划050270计分作业3:【课程实训八】撰写产品营销策划书
  • 游客 购买了资源 2024年秋江苏开放大学营销与策划050270计分作业3:【课程实训八】撰写产品营销策划书
  • 游客 购买了资源 甲公司为上市公司,适用的企业所得税税率为25%,相关资料如下:
  • u******* 签到打卡,获得1金币奖励
  • 游客 购买了资源 甲公司生产销售A产品,为扩大销售,并加强应收账款管理,公司计划对信用政策作出调整,有关资料如下:
  • 游客 下载了资源 上海开放大学大学英语(2)第四次网上记分作业
  • 游客 下载了资源 上海开放大学大学英语(2)第四次网上记分作业
  • 游客 下载了资源 上海开放大学大学英语(2)第四次网上记分作业
  • 游客 下载了资源 上海开放大学大学英语(2)第四次网上记分作业

在线网课学习课堂《高级语言程序设计(吉大 )》单元测试考核答案.pdf

接受学堂在线答案投稿,因为学堂在线销量高,卖出去佣金丰厚接受学堂在线答案投稿,因为学堂在线销量高,卖出去佣金丰厚
2025-04-28

注:不含主观题
第 1 题
算法是一个计算过程,是程序设计的基础和精髓。一个有效的算法应该具有如下特 点,其中错误的是: 。
A 无穷性
B 确定性
C 有效性
D 0 个或多个输入及一个或多个输出
第 2 题
如下错误的表达为: 。
A 一个 C 程序由一个或若干个编译单元组成,每个编译单元是一个源程序文件
B 一个编译单元由若干顶层声明组成,每个顶层声明是一个声明或函数定义,其中 主要为函数定义
C 声明包括类型定义、变量声明、宏、 … 等
D 任何 C 程序必须包含至少一个主函数 main
第 3 题
一般编写并执行 C 程序的过程,第一步应该是 。
A 使用连接程序进行连接,把.obj 文件以及需要的库函数连接到一起,成为一个程 序,生成可执行的机器语言程序。
B 使用 C 编译程序编译 C 源程序文件,生成目标代码程序文件.obj。 C 使用文本编辑程序,录入源程序,保存文件。
D 执行程序,得到运行结果。
第 4 题
C 语言可执行程序从哪里开始执行 。
A 程序中的第一个函数
B 程序中第一条可执行语句
C 程序中唯一的 main 函数
D 第一个包含文件的第一个函数
第 5 题
哪种语言是计算机能够读懂的语言()?
A 机器语言
B 汇编语言
C 高级语言
D 自然语言
第 1 题
下面 C 语言中不正确的数据类型关键字是 。
A int
B signed
C double
D char
第 2 题
下列标识符中不合法的是 。
A Name
B Li_Stone
C 2Dim
D DQ
第 3 题
下列转义字符不正确的是: 。
A ‘\0’
B ‘\”
C ‘\’
D ‘\9999′
第 4 题
现声明 float y,由键盘输入:3.1416,正确的数据输入语句是: 。 A scanf(“%f”,&y);
B scanf(“%d”,y);
C scanf(“%f”,y);
D scanf(“%s”,&y);
第 5 题
C 语言程序中,表达式 5%2 的结果是

________
A 1
B 2
C 5
D 2.5
第 6 题
语句 char
ch=’\65′,
则变量 ch 。
A 值为 2 个字符
B 值为空
C 值为 3 个字符
D 值为 1 个字符
第 7 题
设 x 为整型变量,如果要表示数学关系 20<x<25,错误的 C 语言表达式是: A !(x<=20)&&!(x>=25)
B 20<x<25
C x==21||x==22||x==23||x==24
D x>20&&x<25<>
第 8 题
设变量 A 是 int
型,B 是 float 型,则表达式 A+’q’+B
结果的 数据类型是 。
A float
B char
C 无法确定
D int
第 9 题
如果要表示逻辑关系
“ x≥11 或 x≤2 ”,下面正确的 C 语言表达式是 。
A x>=11 || x<=2
B x>=11 && x<=2
C x>=2 | x<=11
D x>=11 and x<=2
第 10 题
假设整型变量 A、B 和 C 的值分别是 3、6 和 9,请问在执行完如下程序片段后,A 的 值是多少?()
C=B;
B=A;
A=C;
A 6
B 9
C 0
D 3
章节测试
第 1 题
以 下 程 序 的 运 行 结 果 是 (): #include <stdio.h>int main(){ int
x=1,y=0,a=0,b=0; switch(x){ case 1:switch(y){
case 0:a++; break;
case 1:b++; break;
} case 2:a++; b++; break; case 3:a++; b++; }
printf(“%d %d\n”, a, b); return 1; }
A 1 0
B 2 1
C 2 2
D 3 2
第 2 题
阅读下述程序段,设变量 c 的值是 68,写出运行结果()。(提示小写字母 a 的 ASCII 码是 97, 大写字母 A 的 ASCII 码是 65)
char c; if ( c>=‘A’ && c<=‘Z’)
printf (“%c\n”,c+32); else
printf (“%d\n”,c);
A d
B 100
C D
D 68
第 3 题
如有定义语句 int a,b; double x; 则下列选项中没有错误的是 .提 示:(int)x 表示将变量 x 的值强制转换成 int 类型。若 x 初始值为 3.2 则 (int)x 的结果是 int 类型,值为 3.
A switch((int)x%2 ){
case 0: a++; break;
case 1: b++; break;
default: a++; b++; }
Bswitch(x%2){
case 0: a++; break;
case 1: b++; break;
default: a++; b++; }
Cswitch((int)x%2.0){
case 0: a++; break;
case 1: b++; break;
default: a++; b++; }
D switch(x%2){
case 0: a++; break;
case 1.0: b++; break;
default: a++; b++;}
第 4 题
如下程序段的功能是判断一个 4 位自然数个位和十位数字是否相同,在划线处填 写表达式。
int num; scanf (“%d”,&num); if (num>=1000 && num<10000)
if ( A )
printf ( “该 4 位自然数个位和十位数字相同\n”);
else
printf ( “该 4 位自然数个位和十位数字不同\n”);
A num%10 ==num/10%10
B num/10%10==num/100%10
C num/100%10==num%10
D num/1000==num%10
第 5 题
下面程序段实现把 3 或 5 的倍数输出,在划线处填上正确的表达式
int x;
scanf (“%d”,&x);
if ( )
printf (“%d\n”,x);
A x%3==0 || x%5==0
B x%3!=0 && x%5!=0
C x%15
D x%3==0 && x%5==0
第 6 题
下述程序的运行结果是():
12345678910111213
int main(void){
int a=1,b=0;
if (!a )
b++;
else
if ( a==0 )
if ( a )
b+=2;
else
b+=3;
printf(“b=%d\n”,b);
return 0;
}
A b=0
B b=1
C b=2
D b=3
第 7 题
下列程序正确的输出是: 。
int x=20; if(x>0) printf(“0”); if(x>10) printf(“10”); if(x>20) printf(“20”);
A 010
B 0
C 10
D 20
第 8 题
以下选项中,两个条件语句语义等价的是 。
A if(a-2)printf(“%d\n”,a);if(a!=2)printf(“%d\n”,a);
B if(a=2)printf(“%d\n”,a);
if(a==2)printf(“%d\n”,a);
C if(a)printf(“%d\n”,a);
if(a!=2)printf(“%d\n”,a);
D if(a-2)printf(“%d\n”,a);
if(a==2)printf(“%d\n”,a);
第 9 题
如下语句中有一个功能与其他不同,请指出是哪一个()?
A if(a<b) s=a-b; else s=b-a;
B if(a>b) s=a-b; else s=b-a;
C if(a-b>0) s=a-b; else s=b-a;
D if(a>b) s=a-b; if(a<=b) s=b-a;
第 10 题
如下哪个逻辑表达式为真时,能正确表示 x 是 3,5,7
的公倍数。
A (x%3==0) && (x%5==0) && (x%7==0)
B (x%3==0) || (x%5==0) || (x%7==0)
C (x%3==0) && (x%5==0) || (x%7==0)
D (x%3==0) || (x%5==0) && (x%7==0)
章节测试
第 1 题
for(i=1;i<10;i++);结束后,i 的值是 :
A 10
B 9
C 11
D 12
第 2 题
要使下面程序输出 10 个整数,则在横线处填入正确的数是:
for(i=0;i<= ;) printf(“%d\n”,i+=2);
A 18
B 9
C 10
D 20
第 3 题
下面程序的输出结果是 .
int main(void){
int i,j;
for(i=0;i<10;i++)
for(j=0;j<3;j++)
i=i+j;
printf(“%d”,i);
return 0; }
A 12
B 9
C 15
D 18
第 4 题
下面程序执行结果正确的是 。
#include <stdio.h>{ int main(void){
int n=0;
while (n<=2) printf(“%d”,n++);
return 0; }
A 012
B 23
C 123
D 12
第 5 题
下面程序段中循环体语句执行次数是 。
for (int i=5;i;i–)
for (int j=0;j<4;j++){
A 20
B 24
C 6
D 5
第 6 题
下面程序的输出结果是 。
#include <stdio.h> int main(void){
int i=1,j,m=0;
for (;i<=5;i+=4)
for (j=3;j<=19;j+=4)
m++;
printf(“%d”,m);
return 0; }
A 10
B 15
C 20
D 25
第 7 题
下面程序的输出结果是 。
#include <stdio.h> int main(void){ x++;
for (j=1;j<=3;j++){
int i,j,x=0; for (i=0;i<2;i++){
if (j%2)
continue;
x++;
}
x++; } printf(“%d”,x); return 0; }
A 6
B 8
C 10
D 4
第 8 题
针对下面程序段,说法正确的是
for (t=1;t<=100;t++){
scanf(“%d”,&x);
if (x<0) break;
else printf(“%d”,x); }
A 最多允许输出 100 个整数
B 当 x<0 时,整个循环结束<>
C 输出的都是非负整数
D x>=0 时什么也不输出
第 9 题
以下循环语句中,不构成死循环的是 。
A int k=1000; do{;}while (k++<10000);
B int s=36; while (s)
–s;
Cint i; scanf(“%d”,&i); while (1){
i=i%100+1;
if (i>100) break; }
D for (;1;;);
第 10 题
对于以下程序段,描述正确的是
int t=0; while(t=1);
A 循环控制表达式的值为 1
B 死循环
C 循环控制表达式不合法
D 所有描述都正确
章节测试
第 1 题
在定义一个 C 语言函数时,如果不加类型说明,则它的类型默认为 。
A int 型
B float 型
C char 型
D double 型
第 2 题
有函数定义:int
f(int x,int y);则下列函数调用正确的为 。
A int n=1,a=0,b=1; n=f(a,n);
B int n, a=0,b=1; n=f(int a, int b);
C int n,a=0,b=1; n=int f(x,y);
D int n; n=f();
第 3 题
一个 C 语言程序必须有的一个函数是 。
A main 函数
B 子函数
C 被调函数
D 主调函数
第 4 题
下面关于返回类型是 void 的函数说法正确的是 .
A 如果函数内部没有 return 语句,则执行到函数体结束处的右花括号时返回。 B 函数仅可以通过 return 语句返回。
C 函数的返回值是 0。
D 如果使用 return 语句返回,则 return 后面必须有一个整型表达式。
第 5 题
在划线处填写适当 内容完成程序,本程序当输入字符是数字时输 出字符串
“number”,否则输 “none” #include<stdio.h> int check_number(char x){ if ((x>=’0′)&&(x<=’9′))
return 1;
else
return 0; } int main(void){
char ch;
while(1){
scanf(“%c”,&ch);
if(ch==’#’) break;
if( )
printf(“number\n”);
else
printf(“none\n”);
}
return 0; }
A check_number(ch)
B check_number(ch+1)
C check_number(!ch)
D !check_number(ch)
第 6 题
在 C 语言中,调用一个函数可得到 。
A 最多一个返回值
B 最多两个返回值
C 最多三个返回值
D 任意多个返回值
第 7 题
在 C 语言中,正确的说法是 。
A 函数的定义不可以嵌套,但函数的调用可以嵌套
B 函数的定义可以嵌套,但函数的调用不可以嵌套
C 函数的定义和函数的调用均不可以嵌套
D 函数的定义和函数的调用均可以嵌套
第 8 题
C 语言的函数名实际上是 。
A 函数的入口地址
B 返回值存储单元
C 函数值存储单元
D 函数变量
第 9 题
在定义 C 语言函数时,如果函数首部冠以关键字 void,表示此函数 。 A 无返回值
B 返回值可有可无
C 有任意多个返回值
D 有一个返回值
第 10 题
在 C 语言函数中,正确的说法是 。
A 可以有也可以没有形参
B 必须有形参
C 形参必须是简单变量名
D 数组名不能作形参
章节测试
第 1 题
在定义 int
a[5][5];后,数组 a 中的第 10 个元素是 。 (设 a[0][0]为第
一个元素)
A a[1][4]
B a[2][5]
C a[2][4]
D a[1][5]
第 2 题
在定义 int a[5][4];之后,对 a 数组第 2 行第 3 列的元素的引用哪个是正确(假 设 a[0][0]是第一行第一列元素): 。
A a[1][2]
B a[2][3]
C a[1][3]
D a[2][2]
第 3 题
执行如下程序,从键盘依次输入十个整数:“1 0 0 0 1 2 3 0 2 0 0”,则输出
时 a[4]的值是 。
#include<stdio.h> int main(void){
int a[10];
int i,j;
for(i=0;i<10;i++) scanf(“%d”,&a[i]);
for(i=0;i<10;i++){
if(a[i]==0){
j=i;
while(j<10-1&&a[j]==0) j++;
a[i]=a[j];
a[j]=0;
}
}
for(i=0;i<10;i++)printf(“%d\n”,a[i]);
return 0; }
A 2
B 0
C 1
D 3
第 4 题
以下程序的输出结果是 。 int main(void ){
int a[3][3]={{1,2,3},{3,4,5},{5,6,7}},i,j,s=1;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
s*=a[i][j];
printf(“%d\n”,s);
return 1; }
A 840
B 2520
C 360
D 12600
第 5 题
有如下声明:
int a[10]={0,1,2,3,4,5,6,7,8,9};
则数值不是 6 的表达式是: .
A a[7]
B a[10-4]
C a[6]
D a[9]-a[3]
第 6 题
下面程序的输出是 。
int main(void) {
int a[10]={1,2,3,4,5,6,7,8,9,10};
printf(“%d\n”,a[a[7]/a[1]]);
return 1; }
B 2
C 3
D 4
第 7 题
下面程序的功能是: 。
#include <string.h> int main(void) {
char a[ ]=”programming”,t;
int i,j,k;
k=strlen(a);
for(i=0;i<=k-1; i++)
for(j=i+1;j<k; j++)
if(a[i]<a[j]) {
t=a[i];
a[i]=a[j];
a[j]=t;
}
puts(a);
printf(“\n”);
return 1; }
A 将字符数组 a 中的元素从大到小排序
B 将字符数组 a 中的元素从小到大排序
C 求字符数组 a 中的最大元素
D 求字符数组 a 中的最小元素
第 8 题
如下程序运行时,从键盘上输入由数字组成的字符串,该程序的功能是 。 int main(void){
char ch[5];
int j;
int s=0;
printf(“Enter a numeral string\n”);
gets(ch);
for(j=0;ch[j]>’\0′;j++) s=10*s+ch[j]-‘0′;
printf(“%d\n”,s);
return 1; }
A 将数字字符串 ch 转换成十进制数
B 求字符数组长度
C 将字符数组中的数字转换对应的字母
D 将字符数组中的大写字母转换成小写
第 9 题
如下程序的功能是: .
int main(void){
char str[10]=”array”;
int i=0,j=0;
for(i=0;str[i]>’\0’;i++)
j++;
printf(“%d\n”,j);
return 1; }
A 求字符数组长度
B 将数字字符串 ch 转换成十进制数
C 将字符数组中的数字转换对应的字母
D 将字符数组中的大写字母转换成小写
第 10 题
划线处填写 ,可以使函数 fun 实现矩阵转置的功能。 #include<stdio.h>
#define M 3 #define N 3 void fun(int arr[M][N]) {//转置
int i,j;
for(i=0; i<M; i++)
for(j=0; j<N; j++){
if(i!=j&&i<j){
int tmp;
tmp=arr[i][j];
arr[i][j]= ;
arr[j][i]=tmp;
}
} }
A arr[j][i]
B arr[i][i]
C arr[j][j]
D arr[i][j]
第 11 题
执行如下程序从键盘输入字符串“abcdefg”,则程序输出 .
#include<stdio.h> #include<string.h> #define SIZE 100 void
strchange(char str[]){
int n=strlen(str);
if(n==0||n==1) return;
else {
int i,j;
for(i=0,j=n-1; i<=n/2-1; i++,j–){
char tmp;
tmp=str[i];
str[i]=str[j]; str[j]=tmp;
}
} } int main(void ){
char str[SIZE];
scanf(“%s”,str);
strchange(str);
printf(“%s\n”,str);
return 1; }
A gfedcba
B abcdefg
C badcefg
D gefbca
第 12 题
在执行 char str[10]=”Ch\nina”; strlen()的结果是 。
A 6
B 5
C 7
D 9
第 13 题
如下选项,哪个不是定义类型名 tcolor 。
A enum tcolor{red, green, blue};
B typedef enum color{red,green,blue} tcolor;
C enum color {red,green,blue};typedef enum color tcolor;
D typedef enum {red,green,blue} tcolor;
第 14 题
假设有声明
typedef char string[6];
string name;
则如下合法的语句是: 。
A name[0]=’a’;
B string=”abc”;
C string[0]=’a’;
D name=”abc”
第 15 题
字符串 sx 小于字符串 sy 的正确逻辑表达式是: 。
A strcmp(sx, sy)<0
B sx<sy
C sx[0]<sy[0]
D strlen(sx)<strlen(sy)
第 16 题
以下错误的定义语句是 。
A #define M 5; int A[M];
B int A[5,6];
C int A[][3];
D int A[10];
第 17 题
定义 int a[2][3]={0,1,2,3,4,5};无法正常访问 a 数组数值 0~5 的下标表达 式是 。
A a[2][4]
B a[5][0]
C a[0,0]
D a[1][1]
第 18 题
以下对字符数组 word 进行正确初始化的是 。
A char word[]=“Computer\0”;
B char word[]=“Computer”;
C char
word[]={‘C’,’o’,’m’,’p’,’u’,’t’,’e’,’r’,’\0’}; D char word[5]={“Computer”,’c’,’b’};
第 19 题
以下对二维数组 a 进行正确初始化的是 。
A int a[][3]={3,2,1,4,5,8}
B int a[][3]={{3,2,1},{4,5,8}}
C int a[2][3]={{3,2,1},{4,5,8}}
D int a[][]={{3,2,1},{4,5,8)}
第 20 题
如下对栈数据进出描述正确的是 。
A 先进后出
B 后进先出
C 先进先出
D 后进后出
章节测试
第 1 题
假设有如下声明:
int ival=1024,*iptr;
float *fptr;
则如下非法操作是 。
A fptr=&ival;
B ival=123;
C iptr=&ival;
D fptr==NULL
第 2 题
假设有 int a=1,*pa=&a; float b=1.2, *pb=&b; *pb=*pa; 则*pb 的值
是 .
A 1
B 1.2
C 2.2
D 0.2
第 3 题
下列各语句行中,能正确进行字符串赋值操作的语句是 。
A char *s=”ABCED”;
B char s[5]={“ABCDE”};
C char s[5]={‘A’ ,’B’,’C’,’D’,’E’, ’F’};
D char *s; scanf(“%s”,&s);
第 4 题
以下 函数返回 a 所指数组 中最小值所在 的下标值 ;在下划线处应填入的是 。 int fun( int *a,int n){
int i,j=0,p;
p=j;
for(i=j;i<n;i++)
if( *(a+i)<*(a+p) ) ;
return (p); }
A p=i;
B i=p;
C a[p]=a[i];
D p=j;
第 5 题
下面程序段的输出结果是 。
int main(void ) {
char string1[20],string2[20]={“ABCDEF”};
strcpy(string1,string2);
printf(“%s\n”,string1+3);
return 1; }
A DEF
B EF
C CDEF
D ABCDEF
第 6 题
有如下说明 int a[10]=[1,2,3,4,5,6,7,8,9,10},*p=a;则数值为 9 的表达式
是 。
A *(p+8)
B *(p+9)
C *p+=9
D p+8
第 7 题
执行语句”char
a[10]={“abcd”},*p=a;”后,*(p+4)的值是 。
A ‘\0’
B “abcd”
C ‘d’
D 不能确定
第 8 题
*p 的最终值是

________
int a[2][4]={10,1,29,30,14,5,6,71},*p;
p=a[0];
p+=3;
A 30
B 14
C 29
D 10
第 9 题
下面的初始化或赋值中
是错误的。
A char s[10]; s= “C Programming”;
B char s[ ]= “C Programming”;
C char *p= “C Programming”;
D char *p; p= “C Programming”;
第 10 题
设有说明 int *ptr[M];,其中标识符 ptr 是 。
A 具有 M 个指针元素的一维指针数组,每个元素都只能指向整型变量 B M 个指向整型变量的指针
C 指向 M 个整型变量的函数指针
D 一个指向具有 M 个整型元素的一维数组的指针
第 11 题
请在划线处填写适当内容完成程序功能:获得字符串 str 的长度。
int Getlength(char* str){
char* p=str;
while(*p!=’\0′)
p++;
return ;
} A B C
D
p-str
p
str
str-p
第 12 题
若有说明语句:int
a,b,c,*d=&c;,则能正确从键盘输入三个整数赋值给变量
a,b,c 的是 。
A scanf(“%d%d%d”,&a,&b,&c);
B scanf(“%d%d%d”,&a,&b, d);
C scanf(“%d%d%d”,&a,&b,&d);
D scanf(“%d%d%d”,&a,&b,*d);
第 13 题
以下关于指针数组的说法中,正确的有 。
A 指针数组是由指针构成的数组
B 指针数组中的每个元素都是一个指针
C int*p[5]与
int
*(p[5])等价
D 其余说法都不正确。
第 14 题
关于指针和字符串的说法中,正确的有 。
A 字面字符串实质上是常量字符数组
B 字符数组的名字是一个指针常量,它只能指向分配给它的那块内存空间,不能指 向其它字符串或数组
C 字符数组被分配数组类型存储空间,该空间可以保存一个字符串
D 指针与字符串没有区别
第 15 题
已知函数的原型为 float sum(int m,int n,float *p);,
设有声 明 float data[10][15];,则如下调用该 函数 的形式 中,正确 的有

________
A sum(10,15,&(a[0][0]));
B sum(10,15,a[0]);
C sum(10,15,*a);
D sum(10,15,& a[0]);
章节测试
第 1 题
设有变量定义
struct stu {
int age;
int num;
}std,*p=&std; 能正确引用结构体变量 std 中成员 age 的表达式是 。
A (*p).age
B std->age
C *std->age
D *p.age
第 2 题
下面有关结构体相关说明正确的是 。
typedef struct date {
int year, month, day;} type_date ;
A 定义了结构体类型名 type_date
B 定义了结构体变量 type_date
C 定义了结构体 type_date
D 这个定义是错误的
第 3 题
下列程序的输出结果是 。 struct student {int math, phi, eng;};
int main(void){
struct student s[2]={{1,2,3}, {4,5,6}};
int t;
t=s[0].math+s[1].phi;
printf(“%d\n”,t);
return 1;}
A 6
B 5
C 7
D 8
第 4 题
请问当从键盘分别输入 4
10 10 20 10 20 40 10 40 则如下程序输出结果
是 。 #include <stdio.h> #include <math.h> #define L 6 struct point{float x,y;}p[L]; float compute(struct point p[L],int num){
float result=0,m,n;
for(int i=0;i<num-1;i++){
m=p[i].x-p[i+1].x;
n=p[i].y-p[i+1].y;
result+=sqrt(m*m+n*n);
}
m=p[num-1].x-p[0].x;
n=p[num-1].y-p[0].y;
result+=sqrt(m*m+n*n);
return result; } int main(void){
int n;
printf(“please input the number of point(2<the number<7 clockwise)”); scanf(“%d”,&n);
if(n<=6&&n>=3){
for(int i=0;i<n;i++){
printf(“please input the x and y of point%d:”,i);
scanf(“%f %f”,&p[i].x,&p[i].y);
}
printf(“the result is %g:”,compute(p,n));
}
return 1; }
A 80
B 50
C 60
D 70
第 5 题
假设 char 型变量占用 1 字节,int 变量占用 4 字节,则结构体变量 student 所占
的内存字节数是 。
struct stu{
char name[20];
char sex;
int score[4]; }student;
A 37
B 29
C 20
D 31
章节测试
第 1 题
在 C 语 言 中 ,用 数组名作 为 函 数调 用 时 的 实参 , 实 际上传 递给 形参 的 是

____________
A 实参数组的首地址
B 实参数组全部元素的值
C 实参数组第一个元素的值
D 实参数组元素的个数
第 2 题
以下正确的说法是 。
A 实参和与其对应的形参各占用独立的存储单元
B 只有当实参和与其对应的形参同名时才共占用存储单元
C 形参是虚拟的,不占用存储单元
D 实参和与其对应的形参共占用独立的存储单元
第 3 题
若有以下函数调用语句:fun(a+b,pow(x,y),fun(n+k,d,pow(a,b)));在此函数调 用语句中实参的个数是 。
A 3
B 5
C 6
D 4
第 4 题
在 C 语言中,一个函数返回值的类型取决于 。
A 定义函数时所指定的函数类型
B return 语句中表达式类型
C 调用该函数的主调函数的类型
D 调用函数时临时指定的类型
第 5 题
在 C 语言中,如果被调用函数(非 void 类型)中没有 return 语句,则其 。 A 带回一个不确定的值
B 不带回值
C 只带回零值
D 带回全部数值
章节测试
第 1 题
以下程序的输出结果是 。
int f(int n){
if(n<=1)
return n;
return f(n-4)*n; } int main(void){
printf(“%d”,f(7));
return 1; }
A -21
B 21
C 18
D -18
第 2 题
以下程序的输出结果是 。
long fib(int n){
if(n>2)
return(fib(n-1)+fib(n-2));
else
return(2); } int main(void){
printf(“%ld\n”,fib(6));
return 1;}
A 16
B 8
C 30
D 2
第 3 题
以下程序的输出结果是 。
int f(int n){
if(n>=10)
return n;
n=n*(n+1);
return f(n)+n/2; } int main(void){
printf(“%d”,f(1));
return 1; }
A 67
B 47
C 51
D 53
第 4 题
已知两个正整数 a 和 b(a<b),如下递归函数实现: 求 a+(a+1)+(a+2)+…+b,在划 线处应填写的表达式是 。 int Sum(int a,int b){
if(a==b)
return b;
else
——————— ; }
A return a+Sum(a+1,b)
B return Sum(a+1,b-1)
C return a+Sum(a,b)
D return Sum(a+1,b)
第 5 题
如 下递 归 函数实现 :求两个数 的最 高公 因数 ,在划线处应填写 的表达式是
。 int HGongYinS(int m,int n){
if(n==0)
return m;
else
; }
A B C
D
return return return return
HGongYinS(n,m%n)
HGongYinS(n,m/n)
HGongYinS(m,m%n)
HGongYinS(n,n/m)
第 6 题
如下递归函数实现:求 m 的 n 次方,在划线处应填写的表达式是 。
int PowInt(int m,int n) {
if (n==0) return 1;
else
if (n==1)return m;
else ; }
A return m*PowInt(m,n-1)
B m*PowInt(m,n-1)
C return PowInt(m,n-1)
D return n*PowInt(n,m-1)
第 7 题
如下递归函数实现: 把给定字符串反转后,存入原来的空间, 如 Str 原来的值为 “abcde”,反转后 Str 的值为“edcba”,划线处应填写的表达式是 。 #include <string.h> void Rev_Str(char *Str){ int Str_Len=strlen(Str);
if (Str_Len<=1) return ;
char TempCh=Str[0];
Str[0]=Str[Str_Len-1];
Str[Str_Len-1]= ‘\0’;
;
Str[Str_Len-1]=TempCh; }
A Rev_Str(Str+1)
B Rev_Str(Str)
C Rev_Str(*Str)
D Rev_Str(*Str+1)
第 8 题
如下递归 函数实现 :求给定整数数组中 的最大值,划线处应填写 的表达式是

________
int Maxi(int Arr[],int n) {
int Temp_Max;
if(n==0) return Arr[0];
else {
;
if(Temp_Max<Arr[n-1])
}
return Temp_Max; }
Temp_Max=Arr[n-1];
A Temp_Max=Maxi(Arr,n-1)
B return Maxi(Arr,n-1)
C return Temp_Max
D Temp_Max=Maxi(Arr+1,n-1)
第 9 题
递归包括 。
A 直接递归
B 间接递归
C 循环递归
D 分支递归
第 10 题
关于使用递归解决问题,下面说法正确的是 。
A 简化后的问题与原始问题有相同的解决形式。
B 递归必须有退出条件。
C 在递归中使用全局量要特别谨慎,使用不当,可能发生冲突。
D 一般递归实现的程序执行效率比相应非递归实现的程序执行效率要低。
章节测试
第 1 题
设 fp 是指向某文件的文件指针,若函数 fclose()操作不成功,返回值是 。
A EOF
B 0
C NULL
D 1
第 2 题
在 C 语言中,使用 fopen 打开文件,操作成功和操作不成功两种情况下函数的返回 值分别是 。
A 文件指针,NULL
B 0,-1
C 文件指针,-1
D 0,NULL
第 3 题
有以下函数,输出结果为 : void f( ){
FILE *fp;int i, n=0, k=0;
fp=fopen(“source.txt”,“w”);
for(i=0;i<5;i++) fprintf(fp,“%d”,i);
fclose(fp);
fp=fopen(“source.txt”,”r”);
fscanf(fp,“%d%d”,&n,&k);
printf(“%d,%d”,n,k);
fclose(fp);
}
A 1234,0
B 0,0
C 0,1
D 1234,1
第 4 题
若文本文件 f1.txt 中原有内容为:Program,则运行以下程序后文件 f1.txt 中的内
容为 。
int main(void){
fp1=fopen(“f1.txt”,”w”); }
A 123
B Program123
C 1234
D 123Program
fprintf(fp1,”123″);
FILE
fclo
第 5 题
下列关于 C 语言数据文件的叙述中正确的是 。
A 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 B 文件由 ASCII 码字符序列组成,C 语言只能读写文本文件
C 文件由二进制数据序列组成,C 语言只能读写二进制文件
D 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
第 6 题
在 C 语言中,FILE 类型由系统定义,保存在 头文件中。
A stdio.h
B math.h
C string.h
D fstdio.h
第 7 题
如果要从二进制形式文件中读取数据,可以使用 C 语言中的 。
A fread 函数
B fgets 函数
C fwrite 函数
D fputs 函数
第 8 题
以下叙述中错误的是 。
A 不可以用 FILE 定义指向二进制文件的文件指针。
B 顺序文件某一时刻,只能处于读或写模式中的一种。
C 在程序结束时,应用 fclose 函数关闭已打开的文件。
D 利用 fread 函数从二进制文件中读数据时, 可用数组名给数组中所有元素读入 数据。
第 9 题
以下程序执行后,abc.dat 文件的内容是 。#include <stdio.h>int
main( void){ FILE *pf; char *s1=”China”,*s2=”Beijing”;
pf=fopen(“abc.dat”,”wb+”); fwrite(s2,7,l,pf) ; rewind(pf);
fwrite(s1,5,1,pf); fclose(pf); return 0;}
A Chinang
B China
C ChinaBeijing
D BeijingChina
第 10 题
以下与函数 fseek(fp,0L,SEEK_)有相同作用的是 。
A rewind(fp)
B feof(fp)
C fgetc(fp)
D ftell(fp)
章节测试
第 1 题
用递归函数求解斐波那契序列,在划线处填上正确语句。 int fib(number){
if ( || number == 2)
return 1;
else:
return fib(number – 1) + fib(number – 2);}
A number == 1
B number == 0
C number == 3
D number != 1
第 2 题
在“ 自顶向下、逐步求精 ”开发方法中,当问题的某步解法与前边高层次的某步解 法具有相同特征属性,只是某些参数不同时下列描述属于是 :
A 递归求精
B 顺序连接求精
C 循环求精
D 分支求精
第 3 题
下面程序段的功能是枚举每一个三位数,且该数个位是 0 或 5 则输出,在划线处填
上正确语句。 int i; for ( ; ;i )
if ( I % 10 == 0 || I % 10 == 5)
printf ( “%d”, i) ;
A i =995 i>=100
B i=100 i<=999<>
C i =1000 i>=100
D i=100 i<=1000<>
第 4 题
下述程序段的运行结果是(): for( int i=1;i<=3;i++)
for( int j=1;j<=2;j++)
for( int k=1;k<=3;k++)
if ( i == j && j == k)
printf ( “%d ”,100*k+10*j+i);
A 111 222
B 111 222 333
C 333 222 111
D 222 111
第 5 题
假设传递给形参 x 和 y 的值是 24 和 16,gcd(x,y)函数是求 x 和 y 的最大公约数, 写出下列函数的运行结果():
int lownum ( int x,int y){
printf (“ %d\n”,x * y /gcd (x,y));
return 0; }
A 48
B 96
C 24
D 36
第 6 题
编写具有良好结构的程序,则下述描述错误的是 :
A 可以不编写程序文档
B 容易阅读
C 易修改
D 方便维护
第 7 题
以下描述中不符合结构化程序设计原则的是 。
A goto 跳转
B 一个入口
C 没有死循环
D 没有死码区
第 8 题
编写一个良好的 C 程序应采用的方法是 。
A 结构化程序设计方法
B 面向对象程序设计方法
C 基于构件的程序设计方法
D 其它三项都不正确
第 9 题
编写程序加入注释是一个良好的习惯,有关注释描述错误的是 。
A 不能对声明加注释
B 可以对函数加注释
C 可以对变量加注释
D 可以对程序段加注释
第 10 题
编写具有良好程序风格的程序, 下述描述错误的是 。
A 程序的行文格式影响程序的运行结果
B 标识符尽量与其所标记的对象含义一致
C 嵌套结构按向右缩进的格式书写
D 程序的行文格式影响程序可读性
章节测试
第 1 题
单向链表中尾结点指针通常指向 。
A NULL
B 尾结点本身的地址
C 前一个结点地址
D 头指针
第 2 题
单链表中指针表示的是 。
A 下一元素的地址
B 内存储器的地址
C 下一元素在数组中的位置
D 头指针的地址
第 3 题
在单链表指针为 p 的结点后插入指针为 s 的结点,正确的操作为 。
A s->next=p->next; p->next=s;
B p->next=s;
s->next=p->next;
C p->next=s; s->next=p
D p->next=s->next; p->next=s;
第 4 题
如下程序的功能为统计结点个数,其中 first 为指向第一个结点的指针(不带哨兵 节点),在下划线处需要分别填入的正确内容为 。
struct link{
char data;
struct link * next; } struct link * p, * first; int
c=0; p=first; while( ){
;
_______
p= ; }
A p!=NULL c++
p->next
B p=NULL c++
p
C p==NULL c++
p->next
D p!=NULL ++c
p
第 5 题
如下程序的功能为建立一个含有 m 个结点,不带哨兵结点的环形链表,返回头指针 head,在下划线处需要分别填入的正确内容为 。
struct node{
int data;
struct node * next; } initial(int m){
int i;
struct node * head, *p, *s;
p=(struct node *) malloc (sizeof(struct node));
head=p;
p->data=1;
for(i=2;i<=m; i++){
s=(struct node *) malloc (sizeof(struct node));
s->data=i;
p->next= ;
p=s;
}
p->next= ;
return head; }
A struct node * s head
B int*
s head
C struct node * p head
D int*
s head->next
第 6 题
函数 del 的功能是删除以 head 为首链表中学号为 num 的节点,请在 处填写 适当内容,完成函数。
struct student{
int num;
int score;
struct student *next; }; struct student *del(struct student
*head ,int num){
struct student *sp1,*sp2;
if(head==NULL) return head;
sp1=head;
while(num!= ){
sp2=sp1;
sp1=sp1->next;
}
if(num==sp1->num){
if(sp1==head){
=sp1->next;
}else
if(sp1->next==NULL){
sp2->next= ;
}else{
sp2->next=sp1->next;
}
}
return head; }
A sp1->num
head
NULL
B sp2->num
sp1
NULL
C sp2->num
sp2
sp1
D sp1->num
head
sp1
第 7 题
对于一个头指针为 head 的带头(哨兵)结点的单链表,判定其后链表为空的条件是

______
A head->next==NULL
B head==NULL
C head->next==head
D head!=NULL
第 8 题
如下程序的功能为计算环形单链表中每 3 个相邻结点数据域内容的和,返回其中 的求和最小值,在下划线处需要分别填入的正确内容为 。
struct node{
int data;
struct node * link; } int min3(struct node * first){
struct node * p=first;
int m, m3=p->data+p->link->data+ p->link->link->data;
for(p=p->link; p!=first; p= ){
m= p->data+p->link->data+ p->link->link->data;
if( )m3=m;
}
return m3; }
A p->link
m<=m3
B p->link
m>m3
C p->link->link m>=m3
D p->link
m!=m3
第 9 题
如下程序的功能为对非降序链表删除数据域内容相同的结点,使之只保留一个,在 下划线处需要分别填入的正确内容为 。
struct node{
int data;
struct node * next; } void purge(struct node * head) {
struct node * p, *q;
q=head->next;
if(q==NULL) return;
p=q->next;
while( p!=NULL){
if(p->data==q->data) {
;
_______
free(p);
p=q->next;
}else{
q=p;
;
_______
}
} }
A q->next = p->next
p=p->next
B q->next = p p=p->next
C q = p->next
p=p->next
D q->next = p->next
q=q->next
第 10 题
如下程序的功能为对链表中所有结点数据域内容求和,其中 head 指向一个带头结
点的单链表,在下划线处需要分别填入的正确内容为 。 struct link{ int data;
struct link * next; } int main(void){
struct link * head;
sum(head); } int sum( ){
struct link * p;
int s=0;
p=head->next;
while(p){
s+= ;
p= ;
} }
A struct link *headp->data
p->next
B struct link head p->data
p->next
C struct link *headp->next->data p->next
D struct link *headp->data

资源下载
下载价格6
点点赞赏,手留余香 给TA打赏

AI创作

评论0

请先
支持多种货币
支持多种货币付款,满足您的付款需求
7天无忧退换
安心无忧购物,售后有保障
专业客服服务
百名资深客服7*24h在线服务
发货超时赔付
交易成功极速发货,专业水准保证时效性

站点公告

开放大学课程作业辅导,有需要扫码加微信

显示验证码

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录