C语言期末测试题(一)

期末将近,将收集到的习题整理合并成一个测试集,供大家练习。一定要先做完题目再核对答案。
第一题:
若程序中有宏定义行:“#define N 100”,则以下叙述中正确的是( )。
A.宏定义行中定义了标识符N的值为整数100
B.在编译程序对C源程序进行预处理时用100替换标识符N
C.对C源程序进行编译时用100替换标识符N
D.在运行时用100替换标识符N
第二题:
第2题:
以下程序运行后的输出结果是( )。
#include<stdio.h>
#include<string.h>
void main()
{ char x[]=“STRING”;
x[0]=0; x[1]=‘\0’; x[2]=‘0’;
printf(“%d %d\n”,sizeof(x),strlen(x));
}
A.6 1
B.7 0
C.6 3
D.7 1

第3题:
有以下程序:
#include<stdio.h>
int fun(int x)
{ static int t=0;
return(t+=x);
}
void main()
{ int s,i;
for(i=1;i<=5;i++)
s=fun(i);
printf("%d ",s);
}
程序运行以后的输出结果是( )。
A.5
B.1 2 3 4 5
C.15
D.1 3 6 10 15

第4题:
有以下程序:
#include<stdio.h>
int f(int x);
void main()
{ int n=1, m;
m=f(f(f(n)));
printf(“%d\n”, m);
}
int f(int x)
{ return x*2; }
程序运行后的输出结果是( )。
A.1
B.2
C.4
D.8

第5题:
与!(a<=b)等价的C语言表达式是( )。
A.b<=a
B.a>=b
C.a>b
D.!(a>b)

第6题:
有以下程序:
#include<stdio.h>
void main()
{
int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i;j<3;j++)
printf(“%d”,a[i][j]);
printf(“\n”);
}
程序运行后的输出结果是( )。
A.123457
B.123569
C.145789
D.123456789

第7题:
在一个C语言源程序文-中所定义的全局变量,其作用域为( )。
A.所在文-的全部范围
B.所在程序的全部范围
C.所在函数的全部范围
D.由具体定义位置和extern说明来决定范围

第8题:
设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。
A.gets(s);
B.while((s[i++]=getchar())!=‘\n’); s[i]=‘\0’;
C.scanf(“%s”,s);
D.do{scanf(“%c”,&s);}while(s[i++]!=‘\n’); s[i]=‘\0’;

第9题:
if语句的基本形式是“if(表达式)语句”,以下关于“表达式”值的叙述中正确的是( )。
A.必须是逻辑值
B.必须是整数值
C.必须是正数
D.可以是任意合法的数值

第10题:
若函数中有定义语句:int k;,则( )。
A.系统将自动给k赋初值0
B.这时k中值无定义
C.系统将自动给k赋初值-1
D.这时k中无任何值

第11题:
以下程序的输出结果是( )。
#include<stdio.h>
void swap(int *a,int *b)
{
int *t;
t=a;
a=b;
b=t;
}
void main()
{
int i=3,j=5,*p=&i,*q=&j;
swap(p,q);
printf(“%d %d\n”,*p,*q);
}

A.3 3
B.5 5
C.3 5
D.5 3

第12题:
有以下程序:
#include<stdio.h>
#include<string.h>
void main()
{ char a[5][10]={“china”,“beijing”,“you”,“tiananmen”,“welcome”};
int i,j;
char t[10];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(strcmp(a[i],a[j])>0)
{ strcpy(t,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],t);
}
puts(a[3]);
}
程序运行后的输出结果是( )。
A.beijing
B.china
C.welcome
D.tiananmen

第13题:
一个float类型变量占用四个字节。若有定义:float x[10]={0.5,2.5,2.4};,则数组x在内存中所占字节数是( )。
A.10
B.12
C.24
D.40

第14题:
有以下程序:
#include<stdio.h>
void main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<=3;j++)
{ if(j%2) continue;
x++;
}
x++;
}
printf(“x=%d\n”,x);
}
程序执行后的输出结果是( )。
A.x=4
B.x=8
C.x=6
D.x=12

第15题:
以下程序运行后的输出结果是( )。
#include<stdio.h>
void main( )
{ int k=1,s=0;
do
{ if((k%2)!=0)
continue;
s+=k; k++;
}while(k>10);
printf(“s=%d\n”,s);
}

A.s=0
B.s=1
C.s=20
D.s=55

第16题:
以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出:
4
3 7
2 6 9
1 5 8 10
则横线处应填写( )。
#include<stdio.h>
void main()
{ int x[4][4],n=0,i,j;
for(j=0;j<4;j++)
for(i=3; i>=j; ______ )
{ n++; x[i][j]=n; }
for(i=0;i<4;i++)
{ for(j=0;j<=i;j++)
printf(“%3d”,x[i][j]);
printf(“\n”);
}
}

A.i–
B.i++
C.j–
D.j++

第17题:
有以下程序:
#include<stdio.h>
void main()
{
int a=1,b=2;
for( ;a<8;a++)
{
b+=a; a+=2;
}
printf(“%d,%d\n”,a,b);
}
程序运行后的输出结果是( )。
A.9,18
B.8,11
C.7,11
D.10,14

第18题:
若有定义语句:int a[3][6];,按在内存中的存放顺序,a数组的第10个元素是( )。
A.a[0][4]
B.a[1][3]
C.a[0][3]
D.a[1][4]

第19题:
若变量已正确定义,有以下程序段:
int a=3,b=5,c=7;
while(a>b) a=b; c=a;
while(c!=a) c=b;
printf(“%d,%d,%d\n”,a,b,c);
其输出结果是( )。
A.程序段有语法错
B.3,5,3
C.3,5,5
D.3,5,7

第20题:
请阅读程序:
#include <stdio.h>
void main()
{
int a[5]={1,2,3,4,5},b[5]={1,1,1,1},i;
for(i=0;i<5;i++) b[i]=a[4-i];
printf(“%d\n”,b[2]);
}
程序的输出结果是( )。
A.1
B.2
C.3
D.4

第21题:
表达式a+=a-=a=9的值是( )。
A.9
B.-9
C.18
D.0

第22题:
下列程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:
A B C D E
F G H I
J K L
M N
O
则以下选项中,不能填写在横线处的是( )。
#include<stdio.h>
void main()
{ int i,j,n; char ch=‘A’;
scanf(“%d”,&n);
if(n<11)
{ for(i=1;i<=n;i++)
{ for(j=1;j<=n-i+1;j++)
{ printf(“%2c”,ch);
_________ ;
}
printf(“\n”);
}
}
else
printf(“n is too large!\n”);
printf(“\n”);
}

A.ch+1
B.ch=ch+1
C.ch++
D.++ch

第23题:
读如下字符串常量:“\\\0\\”,这个字符串常量的长度是( )。
A.2
B.4
C.5
D.10

第24题:
若有说明语句:double *p,a;则能通过scanf()语句正确给输入项读入数据的程序段是( )。
A.*p=&a; scanf(“%lf”,p);
B.*p=&a; scanf(“%f”,p);
C.p=&a; scanf(“%lf”,*p);
D.p=&a; scanf(“%lf”,p);

第25题:
若有定义语句:int a[4][10],*p,*q[4]; 且0≤i<4,则错误的赋值是( )。
A.p=a
B.q[i]=a[i]
C.p=a[i]
D.p=&a[2][1]

第26题:
若有以下函数首部int fun(double x[10],int *n),则下面针对此函数声明语句中正确的是( )。
A.int fun(double x,int n);
B.int fun(double ,int);
C.int fun(double
x,int n);
D.int fun(double ,int);

第27题:
读程序:
#include<stdio.h>
void main()
{
float x=1987.7891;
printf(“%f\n”, (int)(x*100+0.5)/100.0);
}
程序运行后的输出结果是( )。
A.1987.78
B.1987.79
C.1987.7896
D.1987.7941

第28题:
若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。
A.1
B.0
C.2
D.不知道a的值,不能确定

第29题:
若变量x、y已经进行了定义并赋予初值,则将x和y中的数进行交换,不正确的语句组是( )。
A.x=x+y; y=x-y; x=x-y;
B.t=x; x=y; y=t;
C.x=t; t=y; y=x;
D.t=y; y=x; x=t;

第30题:
以下程序运行后的输出结果是( )。
#include<stdio.h>
void main()
{ char ch[3][5]={“AAAA”,“BBB”,“CC”};
printf(“%s\n”,ch[1]);
}
A.AAAA
B.CC
C.BBBCC
D.BBB

第31题:
执行以下程序后的输出结果是( )。
#include<stdio.h>
void main()
{ int a=10;
a=(3*5,a+4);
printf(“a=%d\n”,a);
}

A.a=14
B.a=15
C.a=19
D.a=29

第32题:
有以下程序:
#include<stdio.h>
void main()
{
int a=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2||c–!=3)
printf(“%d,%d,%d\n”,a,b,c);
else printf(“%d,%d,%d\n”,a,b,c);
else printf(“%d,%d,%d\n”,a,b,c);
}
程序运行后的输出结果是( )。
A.1,2,3
B.1,3,2
C.1,3,3

第33题:
有以下程序:
#include<stdio.h>
void main()
{ char s[]=“012xy\08s34f4w2”;
int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>=‘0’&& s[i]<=‘9’)
n++;
printf(“%d\n”,n);
}
程序运行后的输出结果是( )。
A.0
B.3
C.7
D.8

第34题:
若有初始化“int a[5]={1,2,3,4,5};”,则值为4的表达式是( )。
A.a[4]
B.a[a[2]+1]
C.a[a[2]]
D.a[3]+1

第35题:
设有宏定义:#include IsDIV(k,n) ((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5) && IsDIV(m,7)为真时所要表达的是( )。
A.判断m是否能被5或者7整除
B.判断m是否能被5和7整除
C.判断m被5或者7整除是否余1
D.判断m被5和7整除是否余1

第36题:
设有定义:float x=123.4567;,则执行下列语句后的输出结果是()。
printf(“%f\n”,(int)(x*100+0.5)/100.0);

A.123.450000
B.123.460000
C.123.461700
D.123.956700

第37题:
设w是一个double型的一维数组,其首地址是1000(十进制),则元素w[2]的地址是( )。
A.1016
B.1002
C.1008
D.1014

第38题:
有以下程序:
#include<stdio.h>
int fun()
{
static int x=1;
x*=2;
return x;
}
void main()
{ int i,s=1;
for(i=1;i<=3;i++)
s*=fun();
printf(“%d\n”,s);
}
程序运行后的输出结果是( )。
A.0
B.10
C.30
D.64

第39题:
有以下程序:
#include<stdio.h>
void main()
{ int i,j;
for(i=3;i>=1;i–)
{ for(j=1;j<=2;j++)
printf(“%d”,i+j);
printf(“\n”);
}
}
程序的运行结果是( )。
A. 2 3 4
3 4 5

B. 4 3 2
5 4 3

C. 2 3
3 4
4 5

D. 4 5
3 4
2 3

第40题:
若有以下程序段(n所赋的是八进制数):
int m=32767,n=032767;
printf(“%d,%o\n”,m,n);
执行后输出结果是( )。
A.32767,32767
B.32767,032767
C.32767,77777
D.32767,077777

第41题:
有以下程序:
#include<stdio.h>
#include “string.h”
typedef struct{char name[9]; char sex; float score[2];}STU;
void f(STU a)
{ STU b={“Zhao”,‘m’,85.0,90.0};
int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++)
a.score[i]=b.score[i];
}
void main()
{ STU c={“Qian”,‘f’,95.0,92.0};
f©;
printf(“%s,%c,%2.0f,%2.0f\n”,c.name,c.sex,c.score[0],c.score[1]);
}
程序的运行结果是( )。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,f,95,92
D.Zhao,m,85,90

第42题:
若有定义int x,y;,并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条-表达式(x-y)等价的是( )。
A.(x-y>0)
B.(x-y<0)
C.(x-y<0||x-y>0)
D.(x-y==0)

第43题:
在执行语句:int a[ ][3]={1,2,3,4,5,6};后,a[1][0]的值是( )。
A.4
B.1
C.2
D.5

第44题:
请您阅读程序:
#include<stdio.h>
void fun(int n)
{ int k=2;
n=k++;
}
void main()
{ int m=1;
fun(m);
printf(“%d\n”,m);
}
程序运行后的输出结果是( )。
A.4
B.3
C.2
D.1

第45题:
有以下程序:
#include<stdio.h>
int f(int x,int y)
{ return ((y-x)*x);
}
void main()
{ int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf(“%d\n”,d);
}
程序运行后的输出结果是( )。
A.10
B.9
C.8
D.7

第46题:
以下叙述中错误的是( )。
A.非零的数值类型常量有正值和负值的区分
B.常量是在程序运行过程中值不能被改变的量
C.定义符号常量必须用类型名来设定常量的类型
D.用符号名表示的常量叫符号常量

第47题:
以下程序的输出结果是( )。
#include<stdio.h>
void main()
{ int a=37;
a+=a%=9;
printf(“%d\n”, a);
}

A.2
B.8
C.38
D.41

第48题:
已定义以下函数:
fun(int *p)
{
return *p;
}
该函数的返回值是( )。
A.不确定的值
B.形参p中存放的值
C.形参p所指存储单元中的值
D.形参p的地址值

第49题:
有以下程序段,且变量已正确定义和赋值:
for(s=1.0,k=1; k<=n; k++)
s=s+1.0/(k*(k+1));
printf(“s=%f\n\n”, s);
若使下面程序段的功能与之完全相同:
s=1.0;k=1;
while(k<=n)
{
s=s+1.0/(k*(k+1));
_________;
}
printf(“s=%f\n\n”, s);
横线处应填写( )。
A.k>0
B.k<=n
C.k++
D.k+1

第50题:
以下正确的字符串常量是( )。
A.“\”
B.‘abc’
C.OlympicGames
D.“”


答案公布:
1-5:BBCDC
6-10:BDCDB
11-15:CCDBA
16-20:ADBBC
21-25:DAADA
26-30:DBACD
31-35:ACBCD
36-40:BADDA
41-45:ACADB
46-50:CACCD

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C语言软件工程期末试题包含了对于学生在软件工程领域的知识和能力的综合考察。试题主要涉及以下几个方面:软件开发过程、代码规范、代码调试和测试、软件质量保证等。 在软件开发过程方面,试题会考察学生对于软件工程的基本概念和原理的理解,例如需求分析、设计、实现、测试和维护等各个阶段。此外,还会考查学生对于项目管理和版本控制等软件开发过程中的重要概念和工具的了解。 代码规范是软件开发过程中非常关键的一环。试题可能会要求学生按照一定的规范编写代码,包括命名规范、缩进格式、注释规范等。这有助于提高代码的可读性和可维护性。 代码调试和测试是保证软件质量的重要步骤。试题可能会要求学生根据给定的代码调试并找出其中的错误,或者设计并实现一组测试用例来验证代码的正确性和鲁棒性。 软件质量保证方面,试题可能会涉及学生对于代码重构、代码复用和代码审查等方面的理解和应用能力。此外,还可能考查学生对于软件质量度量和软件质量标准的理解。 综上所述,C语言软件工程期末试题的内容主要围绕软件开发过程、代码规范、代码调试测试和软件质量保证等方面展开。学生需要掌握软件工程的基本概念和原理,并具备编写规范化代码、调试和测试代码以及保证软件质量的能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发飙的恒星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值