c程序设计语言期末试卷a(北京工业大学计算机专业近几年c语言期末考试题)

:暂无数据 2026-07-10 13:40:06 2

c程序设计语言期末试卷a(北京工业大学计算机专业近几年c语言期末考试题)

其实c程序设计语言期末试卷a的问题并不复杂,但是又很多的朋友都不太了解北京工业大学计算机专业近几年c语言期末考试题,因此呢,今天小编就来为大家分享c程序设计语言期末试卷a的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

北京工业大学计算机专业近几年c语言期末考试题

北京工业大学实验学院2012―2013学年第 一 学期
《计算机导论》(A)卷课程试卷
适用专业:计算机科学与技术 考试方式:机考 考试时间 :2012 年12 月
班级学号 12570219 姓名: 李志伟 成绩
得分登记(由阅卷教师填写)
题号 一 二 三 四
分数
考生须知:
提交考试结果:
编程题,将程序源代码粘贴到试卷相应题目下端,以学号姓名命名文件。

选择或填空题(每小题2分共20分)
1.完整的计算机系统应包括( B )。
A.主机和外部设备 B.硬件系统和软件系统
C.操作系统和应用软件系统 D.输入设备和输出设备
2.以下叙述正确的是 。
A.do-while语句构成的循环不能用其它语句构成的循环来代替。
B.do-while语句构成的循环只能用break语句退出。
C.用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D.用do-while语句构成的循环,在while后的表达式为零时结束循环。
3. C语言中运算对象必须是整型的运算符是 。
A. %=
B. / C. =
D. *
4.将高级语言编写的程序翻译成机器语言程序,采用的两种翻译方式是
A. 编译和解释 B. 编译和汇编
C. 编译和链接 D. 解释和汇编
5. 微型计算机系统的中央处理器是由 组成的
A. 内存储器和控制器 B. 主存储器和运算器
C. 控制器和运算器 D. 内存储器.控制器和运算器
6.以下符号在C语言中 不能用作用户标识符。
A. _256
B. 3char C.
abc D. ds3
7. 计算机能直接执行的程序设计语言是 。
A. C   B. BASIC
C. 机器语言   D.汇编语言
8. 下列能正确表示a≥10或a≤0的关系表达式是_______。
A. a》=10or a《=0 B. a》=10 | a《=0
C. a》=10 || a《=0 D. a》=10 && a《=0

9.C语言中用 1 表示逻辑值“真”,用 0 表示逻辑值“假”。

10. 微机中1个字节表示的二进制位数是 8 位数 。

二. 完成下列各题

1. 下面这个程序用于读入5个整数,当程序读入的数据n为正整数时,则显示该数,请补充程序。(5分)
#include 《stdio.h》
void main()
{ int i, n;
for (i=1; i《=5;i++)
{
printf("Pleaseenter n:");
scanf( “%d”,&n );
if (n 》 0)printf(“该整数为:%d”,n );
}
printf("Programis over!\n");
}
2. 改写下段程序,实现从控制台输入任意字符如果是大写转换成小写,如果是小写转换成大写,其它字符原样输出。(10分)

#include《stdio.h》
void main()
{ char c1,c2;
c1=’A’;
c2=c1+32;
printf("%c\n",c2);
}
答案代码:
#include 《stdio.h》
void main()
{ char c1,c2;
printf("请输入一个字符:");
scanf("%c",&c1);
if (c1《=’z’ && c1》=’a’)
{c2=c1-32;
printf("大写字母为:%c\n\n",c2);}
else if (c1《=’Z’ && c1》=’A’)
{c2=c1+32;
printf("小写字母为:%c\n\n",c2);
}
else
printf("原字符为:%c\n\n",c1);
}
3. 下列程序有何错误?请改正。(10分)
#include《stdio.h》
void main()
{ short x,y,z;
x=200;
y=300;
z=x*y;
printf("%d\n",z);
}
答案代码:
#include《stdio.h》
void main()
{ int x,y,z;
x=200;
y=300;
z=x*y;
printf("%d\n",z);
}
4. 阅读程序,补充程序的功能。(10分)
从键盘任意输入一个年号(year),判断它是否是闰年。若是闰年,输出“它是闰年”,否则输出“它不是闰年”。已知符合下列条件之一者是闰年:能被4整除,但不能被100整除。能被400整除。
#include 《stdio.h》
void main()
{ int year, flag;
printf("Enteryear:");
scanf("%d",&year );
if((year%4=0&&year%100!=0)||year%400=0)

{ flag =1;
}
else
{ flag = 0;
}
if ( flag=1 )
{
printf("它是闰年\n");
}
else
{
printf("它不是闰年\n");
}
}
三、编写程序,并调试程序正确运行。
1. 编写一个程序,从键盘输入某计算机的价格,再输出该价格打7折后的价格。(15分)

答案代码:
#include 《stdio.h》
#include 《windows.h》
int main()
{
float a,b;
printf("输入一台计算机的价格:");
scanf("%f",&a);
b=0.7*a;
printf("打7折后的价格为:%.1f\n\n",b);
system ("pause");
return 0;
}
2. 从键盘输入一个三位数,求各位数字之和。例如:输入的三位数是385,输出结果为3+8+5=16;(15分)
答案代码:
#include 《stdio.h》
#include 《windows.h》
#include 《string.h》
int main()
{
char a;
intb,c,d,e;
printf("请输入一个三位数:");
scanf("%s",a);
b=a-’0’;
c=a-’0’;
d=a-’0’;
e=b+c+d;
printf("各位数字之和为:%d\n\n",e);
system("pause");
return0;
}

3. 日本一位中学生发现一个奇妙的“定理”,请角古教授证明,而角古教授无能为力,于是产生角古猜想,猜想的内容是:任意自然数,若为偶数除以2,若为奇数则乘以3加1,得到一个新的自然数,按照上面的法则继续演算,若干次后结果必然为1,请编程验证。(15分)

答案代码:
#include 《stdio.h》
void main()
{ int a;
printf("输入一个自然数:");
scanf("%d",&a);
if(a%2==1)
a=a*3+1;
while(a!=1)
{
a=a/2;
}
printf("所得结果为:%d\n",a);
}
我是实验学院的,这是我们2012大一期末的,希望有帮助,里面的答案是自己写的,可忽略

电大C语言程序设计A 求答案! 急!!!!

#include "stdio.h"
#include "string.h"
void main()
{
unsigned char input_char,i;
unsigned char number={0};
unsigned char lengthofinput=0;
unsigned char legalflag=0;
while(!legalflag) {
printf("请连续输入字母(不区分大小写),不大于50,输入数字和其他符号无效,以回车结束\n");
scanf("%s",input_char);
lengthofinput=strlen(input_char);
if( lengthofinput《=50) legalflag=1;
if(legalflag)
{
for(i=0;i《lengthofinput;i++){
if(((input_char)》0x7A))
{ legalflag=0;break;}
if(legalflag)
{
switch (input_char)
{
case 0x41:case 0x61: number++; break;
case 0x42:case 0x62: number++; break;
case 0x43:case 0x63: number++; break;
case 0x44:case 0x64: number++; break;
case 0x45:case 0x65: number++; break;
case 0x46:case 0x66: number++; break;
case 0x47:case 0x67: number++; break;
case 0x48:case 0x68: number++; break;
case 0x49:case 0x69: number++; break;
case 0x4A:case 0x6A: number++; break;
case 0x4B:case 0x6B: number++; break;
case 0x4C:case 0x6C: number++; break;
case 0x4D:case 0x6D: number++; break;
case 0x4E:case 0x6E: number++; break;
case 0x4F:case 0x6F: number++; break;
case 0x50:case 0x70: number++; break;
case 0x51:case 0x71: number++; break;
case 0x52:case 0x72: number++; break;
case 0x53:case 0x73: number++; break;
case 0x54:case 0x74: number++; break;
case 0x55:case 0x75: number++; break;
case 0x56:case 0x76: number++; break;
case 0x57:case 0x77: number++; break;
case 0x58:case 0x78: number++; break;
case 0x59:case 0x79: number++; break;
case 0x5A:case 0x7A: number++; break;
default: break;
}
}}
if(legalflag){
for (i=0;i《26;i++)
if(number=0;}
legalflag=0;
}
}
//0x41~5A,0x61~7A;
}

}

//如果输入过程中含有空格,会被当作两组输入处理。

(C)《程序设计语言》期末试卷求答案

(1) guess!=random
(2) scanf("%d",&guess)
(3) a
(4) s+=*(p+i)
(5) \0
(6) \0
(7) str1
(8) str1=’\0’
(9) i《n
(10) n%i==0

徐师大c语言期末考试11机

1、函数fun的功能是计算x^n。
double fun(double x,int n)
{int i; double y=1;
for(i=1;i《=n;i++) y=y*x;
return y;
}
主函数中已经正确定义m、a、b变量并赋值,并调用fun函数计算:m=a^4+b^4-(a+b)^3。实现这一计算的函数调用语句为______。
答案: 1:fun(a,4)+fun(b,4)-fun((a+b),3)
评析:
函数fun的功能是计算x的n次方,所以a的4次方的调用函数应当为fun(a,4),b的4次方的调用函数应当为fun(b,4),(a+b)的3次方的调用函数应当为fun((a+b),3),所以,实现m=a^4+b^4-(a+b)^3这一计算的函数调用语句为:fun(a,4)+fun(b,4)-fun((a+b),3);。
知识点:知识点/函数/函数的正确调用,嵌套调用,递归调用
2、以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。请填空。
void sstrcpy(char *s,char *t)
{ while(*s++=______);}
main()
{ char str1="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
答案: 1:*t++
评析:
要使sstrcpy()函数实现字符串复制,必须将t字符串中的每个字符逐个拷到s字符串中,所以可以使用*s=*t;s++;t++。或者可以写成*s++=*t++,本题只有一个空,可以填入*t++。
知识点:知识点/指针/用指针作函数参数
3、以下程序给指针p分配三个double型动态内存单元,请填空。
#include 《stdlib.h》
main()
{ double *p;
p=(double*)malloc(______);
p=3.5;
printf("%f%f%f\n",p);
}
答案: 1:3*sizeof(double)
评析:
malloc(size)在内存的动态存储区中分配一个长度为size的连续空间。此函数的值(即"返回值")是一个指针,它的值是该分配域的起始地址。如果此函数未能成功地执行,则返回值为0。
本题中要求分配三个double型动态内存单元,所以size处应当为3*sizeof(double)。
知识点:知识点/指针/各类型的指针及指针变量,通过指针引用各类型数据
4、以下程序运行后的输出结果是______。
main()
{ int a,b,c;
a=25;
b=025;
c=0x25;
printf("%d %d %d\n",a,b,c);
}
答案: 25 21 37
评析:
本题考查的是格式字符的输出。
变量a、b、c分别为十进制、八进制、十六进制的25,格式字符d所代表的含义是,以带符号的十进制形式输出整数(正数不输出符号),所以本题a=25则输出值为25;b=025转换为10进制:b=2*8+5=16+5=21,则输出的值为21;c=0x25转换为10进制:c=2*16+5=32+5=37,则输出的值为37,而且printf中三个%d之用的是空格,所以输出的几个数字之间也必须是空格。
知识点:知识点/函数/变量的存储类别,变量的作用域和生存期
5、以下程序运行后的输出结果是______。
main ()
{ char a="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));
}
答案: gae
评析:
本题考查的是字符指针变量与字符数组。
解题过程:
(1)当k=0时,*(p1+0)=’L’,*(p2+0)=’P’,L!=P,所以没有输出
(2)当k=1时,*(p1+1)=’a’,*(p2+1)=’r’,a!=r,所以没有输出
(3)当k=2时,*(p1+2)=’n’,*(p2+2)=’o’,n!=o,所以没有输出
(4)当k=3时,*(p1+3)=’g’,*(p2+3)=’g’,g==g,所以输出g
(5)当k=4时,*(p1+4)=’u’,*(p2+4)=’r’,u!=r,所以没有输出
(6)当k=5时,*(p1+5)=’a’,*(p2+5)=’a’,a==a,所以输出a
(7)当k=6时,*(p1+6)=’g’,*(p2+6)=’m’,g!=m,所以没有输出
(8)当k=7时,*(p1+7)=’e’,*(p2+7)=’e’,e==e,所以输出e
(9)当k=8时结束循环
(10)输出结果为:gae。
知识点:知识点/数组的定义和引用/字符串与字符数组
6、以下程序通过函数SunFun和f(x),x=0到10,这里f(x)=x^2+1,由F函数实现,请填空。
main()
{ printf("The sun=%d\n",SunFun(10));}
SunFun(int n)
{ int x,s=0;
for(x=0;x《=n;x++)s+F(______);
return s;
}
F(int x)
{ return (______);}
答案: 1:x
2:x*x+1
评析:
本题考查的是函数的调用。
解题过程:
(1)f(x)的含义为x的平方加上1
(2)所以F(int x)的返回值应该为 x*x+1
(3)SunFun(10)的作用是将0到10之间所有的整数相加求和
(4)所以F()的形式参数为x。
知识点:知识点/函数/函数的正确调用,嵌套调用,递归调用
7、以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。
#define M2
#defineN4
void SumColumMin(int a,int *sum)
{ int i,j,k,s=0;
for(i=0;i《N;i++)
{ k=0;
for(j=1;j《M;j++)
if(a)k=j;
s+=______ ;
}
______ =s;
}
main()
{ int x={3,2,5,1,4,1,8,3},s;
SumColumMin(______);
printf("%d\n",s);
}
答案: 1:a
2:*sum
3:x,&s
评析:
本题考查的是函数参数的传送。
解题过程:
(1) 执行以i为变量的for语句
1)k=0
2)执行以j为变量的for语句
①当j=1
②比较a则k=0
③j=2所以结束循环
3)此时a,用变量s累加。
(2) SumColumMin是一个无返回值的函数,其中形式参数*sum是一个指针类型,所以第二空应该填写 *sum,用来将该指针变量指向s
(3) 当主函数main调用SumColumMin时,需要两个实际参数,一个代表被操作的数组,一个为指向累计和的指针变量,所以第三个空应该为 x,&s,分别代表已经被定义的数组x,和整型变量s的地址。
知识点:知识点/函数/函数的正确调用,嵌套调用,递归调用
8、以下程序的输出结果是 。
main()
{
int a=0;
a+=(a=8);
printf("%d\n",a);
}
答案: 16
评析:
本题的考查点是表达式。
表达式a+=8相当于a=a+8,对表达式逐步求解过程如下:
a+=(a+8)此时,a的值赋值为8,而不再是0;
a+=8
a=a+8
a=16
故本题答案为16。
知识点:知识点/函数/形式参数与实在参数,参数值的传递
9、以下程序的输出结果是______。
#define MAX(x,y)(x)》(y)?(x):(y)
main()
{
int a = 5, b = 2,c = 3, d = 3, t;
t = MAX(a + b, c + d)*10;
printf("%d\n", t);
}
答案: 7
评析:
本题的考查点是宏定义。
宏替换后,表达式t = MAX(a + b, c + d)*10即变为:t = (a+b)》(c+d) ? (a+b) : (c + d)*10;
由于(a+b)》(c+d)为真, 所以t = (a+b),即为7。
故本题答案为:7。
知识点:知识点/编译预处理/宏定义:不带参数的宏定义;带参数的宏定义
10、函数mycmp(char *s,char *t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s》t返回正值,当s《t时返回负值。请填空。
mycmp( char *s,char *t)
{ while (*s==*t)
{ if (*s==’\0’)return 0;
++s;++t;
}
return(______);
}
答案: *s-*t
评析:
本题的考查点是比较字符串的大小。
函数的两个形参是两个字符指针变量,字符串的首地址是指针变量的值,*s和*t表示字符串数组s和t的第一个字符,在while循环中,是通过s和t值的不断变化改变两个串的第一个字符,要返回s和t的第一个不同字符的ASCII码的差值,必须使用"*s-*t"得出。
故本题答案为:*s-*t。
知识点:知识点/函数/库函数的正确调用
11、若给fun函数的形参s传送字符串:" 6354abc",则函数的返回值是______。(字符串中包括空格)
long fun(char s)
{ long n; int sign;
for (; isspace(*s);s++);
sign=(*s==’-’)?-1:1;
if (*s==’+’ || *s==’-’) s++;
for (n=0;isdigit(*s);s++)
n=10*n+(*s-’0’);
return sign*n;
}
答案: 6354
评析:
本题的考查点是函数的返回值。
这个函数的目的是提取出由函数的形参传送来的字符串中的数字字符,并通过相应各个字符位置计算出它们数值形式的幂,最后返回字符串中的数字字符的数值形式,所以函数的返回值应当是"6354"。
故本题答案为:6354。
知识点:知识点/函数/函数的正确调用,嵌套调用,递归调用
12、以下程序段的输出结果为______。
char *p;int i,d;
p="PDP1-0";
for(i=0;i《7;i++)
{
d=isdigit(*(p+i) );
if(d!=0)
printf("%c\n",*(p+i) );
}
答案: 1
评析:
本题的考查点是函数isdigit()。
这段程序的目的是按从左至右的顺序从字符串p中找出阿拉伯数字字符,如果找到,将其打印出来。最后的输出应当是:
1
0
知识点:知识点/函数/库函数的正确调用
13、下列程序中字符串中各单词之间有一个空格,则程序的输出结果是______。
# include《string.h》
main( )
{ char str1="How do you do", *p1=str1;
strcpy(str1+strlen(str1)/2,"es she");
printf("%s\n",p1);
}
答案: How does she
评析:
本题的考查点是字符串拷贝函数strcpy()。
strlen(str1)是求str1字符串的长度,为13,然后,进行除2运算,结果为6。strcpy()函数是把字符串"es she"拷贝到str1后的第6个字符后面,也就是说,拷贝后的结果是"How does she"。
故本题答案为:How does she。
知识点:知识点/函数/库函数的正确调用
14、下面的函数strcat(str1,str2)实现将字符串str2拼接到字符串str1后面的功能。请填空使之完整。
char *strcat(str1,str2)
char *str1,*str2;
{ char *t=str1;
while(______)str1++;
while(______);
return(t);}
答案: 1:*str1!=’\0’
2:*str1++=*str2++
评析:
本题的考查点是字符串连接函数strcat()。
函数strcat(str1,str2)实现将字符串str2连接到字符串str1后面,所以首先要找到字符串str1的串尾,根据C语言的语法规定,一个串的串尾一定是一个隐含字符"\0",而在程序中,对字符串中字符的访问是通过两个指针变量来完成的,因此要找到字符串str1的串尾,要判断*str1是否为"\0",要找到字符串str2的串尾,要判断*str2是否为"\0",程序中必须可以使字符串中字符逐一顺序体现,所以在题中我们应填写"*str1"和"*str1++=*str2++ "。
知识点:知识点/函数/库函数的正确调用
15、以下程序的输出结果是______。
void fun()
{ static int a=0;
a +=2; printf("%d",a);
}
main()
{ int cc;
for(cc=1;cc《4;cc++) fun();
printf("\n");
}
答案: 246
评析:
循环for(cc=1;cc《4;cc++)被执行了3次。在函数fun中,由于a是static型变量,所以函数第1次调用后,a= 2;第2次调用后,a = 4;第3次调用后,a = 6。
知识点:知识点/函数/函数的正确调用,嵌套调用,递归调用
16、若要使指针p指向一个double类型的动态存储单元,请填空。
p=______malloc(sizeof (double));
答案: (double*)
评析:
函数malloc返回的是void*而不是double类型指针。所以要使指针p指向一个double类型的存储单元就必须进行强制类型转换。
知识点:知识点/函数/函数的类型和返回值
17、下列程序段的输出结果是______。
main()
{ char b="Hello,you";
b=0;
printf("%s\n",b);
}
答案: Hello
评析:
字符串中,数值0或符号’\0’表示字符串的结束。本题中,b被赋了0值,表明字符串b的第六个字符就是结束标志。因此,只输出前五个字符,即Hello。
知识点:知识点/数组的定义和引用/一维数组和多维数组的定义、初始化和引用
18、下列程序的输出结果是______。
void fun(int *n)
{ while((*n)--);
printf("%d",++(*n));
}
main()
{ int a=100;
fun(&a);
}
答案: 0
评析:
在函数fun()中,while((*n)--)是先引用*n的值,再做(*n)-- 运算,所以循环结束时*n的值为0,再做(*n)-- 运算后,*n的值为-1;执行++(*n)后,*n的值是0。
知识点:知识点/函数/函数的正确调用,嵌套调用,递归调用
19、以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空:
#define N 3
#define M 4
void LineMax(int x)
{ int i,j,p;
for(i=0;i《N;i++)
{ p=0;
for(j=1;j《M;j++)
if(x)______;
printf("The max value in line %d is %d\n",i,______);
}
}
main()
{ int x={1,.5,7,4,2,6,4,3,8,2, 3,1};
______;
}
答案: 1:p=j
2:a
3:LineMax(x)
评析:
LineMax函数中运用了两个循环,外循环来控制数组的行,内循环控制列,在寻找每行最大的元素时,先把每行的第一个元素列下标即0赋给p,然后把后面的数逐一与之比较,如果大于它,则把大的数的列下标重新赋给p。
所以(1)处应该填p=j;
内循环结束后,便获得了本行中最大的数,即a,这也就是(2)处应该填写的答案;
而(3)处,很显然是要调用函数,关键就在于参数怎么写,函数中需要的是整个数组,所以应该把数组名做为实参,传递过去,(3)处的答案应该是LineMax(x)。注意大小写,C语言中大小写是不等价的。
知识点:知识点/函数/函数的正确调用,嵌套调用,递归调用
20、若有如下结构体说明:
struct STRU
{ int a,b;char c: double d;
struct STRU *p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。
______t
答案: struct STRU
评析:
本题主要考查考生对C语言中结构体的掌握。
  结构体类型是构造数据类型,是用户自已定义的一种类型。
  结构体类型的定义:
    struct 结构体类型名
     {
成员项表;
};
定义结构体变量的的形式为:
  struct 结构体类型名 变量1,变量2,...
其中变量包括:一般变量、指针变量、数组变量等。
知识点:知识点/数组的定义和引用/一维数组和多维数组的定义、初始化和引用
21、以下程序运行后的输出结果是______。
void fun(int x,int y)
{x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);}
main()
{int x=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}
答案: 3,2,2,3
评析:
本题的考查点是交换变量的值。
被调函数fun()实现的功能是交换变量x和y的值并打印,由于该函数无返回值,所以在主函数中打印出的x和y的值仍然为2,3。
故本题答案为:3,2,2,3。
知识点:知识点/函数/形式参数与实在参数,参数值的传递
22、下面程序的运行结果是:______。
#define N 10
#define s(x) x*x
#define f(x) (x*x)
main()
{int i1,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d %d\n",i1,i2);
}
答案: 1000 10
评析:
本题的考查点是宏定义。
根据宏定义,变量i1的值为1000/10*10=1000,变量i2的值为1000/(10*10)=10。
故本题答案为:1000和10。
知识点:知识点/编译预处理/宏定义:不带参数的宏定义;带参数的宏定义
23、下面程序的运行结果是:______。
void swap(int *a,int *b)
{int *t;
t=a;a=b;b=t;
}
main()
{int x=3,y=5,*p=&x,*q=&y
swap(p,q);
printf("%d%d\n",*p,*q);
}
答案: 35
评析:
本题的考查点是函数调用。
观察本题的程序可以看出,被调函数swap()实现的功能是交换变量的值,但由于函数不返回任何值,所以在main()函数中打印出的变量的值并没有发生交换,即仍为3和5。
故本题答案为:3和5。
知识点:知识点/函数/函数的类型和返回值
24、fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。
#include 《stdio.h》
#define N 100
int fun(int(*a))
{int row,col,max,min;
for(row=0;row《N;row++)
{for(max=a,col=1;col《N;col++)
if(______) max=a;
if(row==0) min=max;
else if(______) min=max;
}
return min;
}
答案: 1:max《a
2:max《min
评析:
本题的考查点是求矩阵最大值的算法。
本题中的第一空要求判断出每一行中的最大数,应该填写条件max《a,第二空要求从N个最大值中找出最小的数,应填入条件max《min。
故本题答案为:max《a和max《min。
知识点:知识点/函数/函数的正确调用,嵌套调用,递归调用
25、以下程序的输出结果是______。
#define MCRA(m) 2*m
#define MCRB(n,m) 2*MCRA(n)+m
main()
{ int i=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
答案: 16
评析:
本题的考查点是带参数的宏定义。
带参数的宏定义是这样展开置换的:在程序中如果有带实参的宏,则按#define 命令行中指定的字符串从左到右进行置换。如果串中包含形参,则将程序语句中相应的实参(可以是常量、变量或表达式)代替形参,如果宏定义中的字符串中的字符不是参数字符,则保留。因此对MCRB(j,MCRA(i))进行宏展开就得到了2*MCRA(j)+MCRA(i),即:2*2*j+2*i=2*2*3+2*2=16。
故本题答案为:16。

知识点:知识点/编译预处理/宏定义:不带参数的宏定义;带参数的宏定义
26、以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。
int fun ( int n)
{ int m=0,f=1,i;
for(i=1; i《=n; i++)
{ m+=i*f;
f=______;
}
return m;
}
main()
{ printf("m=%d\n",______);}
答案: 1:-f
2:fun(10)
评析:
本题的考查点是C程序设计。根据程序写出运行结果。
考察的知识点主要是函数的调用。本题利用一个fun函数来完成题目要求的计算。程序中f起的作用是控制i*f的符号,看的出,偶数位都为负值,所以f的值为(-1)^(i+1),最后要求输出m的值,在输出中调用fun函数,并把实参10传给n。
知识点:知识点/函数/函数的正确调用,嵌套调用,递归调用
27、以下程序运行后的输出结果是______。
main()
{ int i,n={0,0,0,0,0};
for(i=1;i《=4;i++)
{ n*2+1;
printf("%d ",n);
}
}
答案: 1 3 7 15
评析:
本题的考查点是C程序设计。根据程序写出运行结果。
该程序考察的是数组的知识点,n是一个有5个元素,且元素值全为0的数组。程序运行过程时先进行for循环,i=1时,n=15。循环结束。注意输出函数中%d后有空格。
知识点:知识点/数组的定义和引用/一维数组和多维数组的定义、初始化和引用
28、请在以下程序第一行的下划线处填写适当内容,使程序能正常运行。
______( double,double);
main()
{ double x,y;
scanf("%1f%1f",&x,&y);
printf(%1f\n",max(x,y));
}
double max(double a,double b)
{ return(a》b ? a:b);}
答案: double max
评析:
本题的考查点是C程序设计。调试程序,把不完善的程序进行修改和补充,使之能得到正确的结果。
主函数里可以看到调用了一个max函数,函数在被调用之前需要先定义,所以要求填空的内容应该是对函数进行定义的语句。由题目内容也可以看出此函数是double型的。
知识点:知识点/函数/函数的正确调用,嵌套调用,递归调用
29、有以下程序
void f(int y,int *x)
{ y=y+*x; *x=*x+y;}
main()
{ int x=2,y=4;
f(y,&x);
printf("%d %d\n",x,y);
}
执行后输出的结果______。
答案: 8 4
评析:
f函数中变量x传递的是变量的地址,可以实现值的变换,而变量y是传递的值,执行完f后,y的值是变了,但main函数中的y并未变化。也就是说由于"单向传送"的"值传递"方式,形参值的改变无法传给实参。
知识点:知识点/函数/形式参数与实在参数,参数值的传递
31、C语言程序的基本单位是______
答案:函数
32、设有说明语句:char a= ’\72’;则变量a包含______个字符、
答案:1
33、c语言是一种______(选择面向对象或面向过程)高级程序设计语言。
答案:面向过程
34、C语言中唯一的三目运算符是______
答案:条件运算符#? :
35、C语言中结束一次循环的语句是______
答案:continue
36、C语言中结束整个循环的语句是______
答案:break
37、二维数组a中元素a={{1,2,3},{3,2,1,6},{1}};
答案:0
38、写出下面个逻辑表达式的值,设a=3,b=4,则c=5 a || b+c && b-c=______
答案:1
39、写出下面个逻辑表达式的值,设a=3,b=4,则! (a+b)+c –1 && b+ c/2 =______
答案:1
40、在C语言中打开文件的函数名称是______
答案:fopen#fopen()
41、在C语言中关闭文件的函数名称是______
答案:fclose#fclose()
42、C语言中基本的数据类型有______
答案:int float char # 整型 实型 字符型
43、设y是int型变量,请写出判断y为奇数的关系表达______
答案:y%2!=0 # y%2==1 # y%2
44、以下程序运行后的输出结果是______
main()
{ int i=10,j=0;
do
{ j=j+i; i-;
while(i》2);
printf("%d\n",j);
}
答案:52
45、设有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298;则输出结果为______
答案:8921
46、以下程序输出的最后一个值是______
int ff(int n)
{ static int f=1;
f=f*n;
return f;
}
main()
{ int i;
for(i=1;i《=5;i++) printf("%d\n",ff(i));
}
答案:120
47、设有以下程序:
main()
{ int a, b, k=4, m=6, *p1=&k, *p2=&m
a=pl==&m
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
执行该程序后,a的值为______b的值为______
答案:0 @ 7
48、 函数fun的功能是:累加数组元素中的值。n为数组中元素的个数。累加的和值放入x所指的存储单元中。
fun(int b, int n ,int *y)
{for(k=0;______;k++) r=r+b;
*y=______;
}
答案:k《n @ r
51、以下程序运行后的输出结果是______
main()
{ char m;
m=’B’+32; printf("%c",m);
}
答案:b
52、以下程序运行后的输出结果是______
main()
{ int a=1,b=3,c=5;
if (c=a+b) printf("yes\n");
else printf("no\n");
}
答案:yes

武汉理工大学c语言期末好过吗

不好。立即下载
为了提升浏览体验,原视图版网页已升级为如下版式
武汉理工大学C语言期末试题
PLUS联合会员,享八亿文档和万本图书开通会员
武汉理工大学C语言期末试题.doc
54.5K11页 73阅读loudicrh3020-11-25
立即下载 +合伙人(招募中) 举报
武汉理工大学C语言期末试题
武汉理工大学考试试卷A、 B卷)
2010 201 1学年2学期 语言程序设计 课程 闭卷
一、单项选择题(每题2分共20分
在每小题列出的四个备选项中只有一个是符合题目要求的请将所选代码填写在下面表格中的对应位置。错选、多选或未选均无分。
1. 以下叙述不正确的是___。
A.在程序中,注释说明只能位于一条语句的后面.
B.一个源程序可由一个或多个函数组成.
C.一个源程序必须包含一个ma  函数。
D.C程序的基本组成单位是函数.
2. 以下选项中,____是合法的语言字符常量。
. ″A″ B。 ′  x43 ′ C. ′ a b ′
D。 ′ 04′
3. 以下不是合法的C语言赋值语句为___。
A++;  n=(m=(p=0))  C。a=b=c; D.k=
+b1 
4. 设在语言中一个int型数据在内存中占用个字节则uns  ged nt型数据的取值范围为_____。
A.025  B  0~32767 C。 0~ 5535
  0214483647
5. 已知字符′  ′的ASC I码为98 语句p intf  ″%d,c″, ′  ′  ′
1/11页
武汉理工大学C语言期末试题
 ′   ) 的输出结果为_____。
A98   B。语句不合法 98 99 D。8  
6. 执行语句fo (i=1 ; i++ 〈4;  后,变量i的值是____.
A 3 。  C。 5
D。不定
7. 若有声明int   则对a数组元素的非法引用是 .
A a0 B。 a 1  [  。 a[-2  [ 
D.a   4
8. 在C语言程序中,数组名做函数调用的实参时传递给形参的是 。
A数组第一个元素的值 B。数组的首地址
。数组全部元素的值  数组元素的个数
9. 设有数组定义: cha arra  ]"China” 则数组  ray所占的存储空间为 .
A。 4个字节 B。 5个字节 C。 6个字节   个字节
10.若有定义in  x,    ,则以下正确的赋值表达式是 。
A.p=&x   =x  *p&x .p= ;
二、判断题 每题1分共 分)
请将答案填写在下面的表格中,正确填“√”错误填“×”。
 )1。 在C语言程序中程序的执行总是从main( 函数开始在main
2/11页
武汉理工大学C语言期末试题
 函数中结束.
  。 利用saf函数输入数据时只有格式控制,没有输入项也
能正确输入数据到内存如scan  ″a=%d  =d″  。 )3. re a语句只能用于si tc h语句体中。
 )4.d…whi le语句的循环体至少无条件执行一次。
( 5 构成数组的各个元素可以有不同的数据类型。
( 6.可以利用变量对数组的下标进行动态定义例如int =0; ita n ;。 7。 函数str  n  ”Ch  na\n")的值是7.
 8.函数的定义一般由函数首部和函数体部分组成。
 )9.用户自定义的函数必须有返回值.
 )10. 函数调用中的参数称为实际参数。
三、填空题 每空1分,共10分)
1 C语言程序的基本结构可以分为 、 、
三种。
2 数组[ 0下标的范围是从______到________。
3. 在语言中 取地址运算符是 指针运算符
是 。
已知n为三位整数即n〉 =100且n 〈999 求n的百位数字、十位数字、个位数字的表达式分别为 、 和 。
四、程序阅读题 每题5分共15分)
1. in  d 〈std  o。 h〉main  
in   
 anf  d” &* 
3/11页
武汉理工大学C语言期末试题if   15)prin tf(”%" x5 if(x10)   intf  "d  x if x》5)pr  n  f(”%d\”,x+5) 
}
若程序运行时从键盘输入  2 后回车  则输出结果为 .
2. main( )

 +)for   1 ; j《i  j++s=+2 printf  s d\n",s) 

程序运行后的输出结果为 。
3. #i   u  〈tio  〉main  
int a,b int p1 , p2  p sanf  %d d"  a,&b);p1&a  p=b;if( 〈 
{pp1  1= ; p2= 
}
4/11页
武汉理工大学C语言期末试题prit   ” d\”,a,);pritf  ”% %d ", p1 , p2 

若程序运行时从键盘输入 4 和 5 后回车,则输出结果为: 。
五、程序填空题. 每空3分共15分
1 .一个三位整数(10099) 若各位数的立方和等于该数自身,则称其为“水仙花数"(如 1531 +53+33  ,找出所有的这种数.
ain  

 nt n  a  b, ;
+


2.定义求素数的prime函数,在main调用prie函数求3~20内的所有素数。
 ntprime(int
;fl a = f++)if()
reak 
return f    

  )intp ime  nt) 

求一份C语言程序设计的期末考试试题!!!谢谢了

一.
选择题
(共15题,
每题2分,共30分)
1.
定义结构体的关键字是(

A.
union
B.
enum
C.struct
D.typedef
2.
设整型变量a为5,使b不为2的表达式是(

A.
b=a/2
B.
b=6-(--a)
C.
b=a%2
D.
b=a》3?2:1
3.
下面哪一项是不正确的字符串赋值或赋初值的方法(

A.
char
*str;
str=
“china”;
B.
char
str=
{‘c’,
‘h’,
‘i’,
‘n’,
‘a’};
C.
char
str1=
“china”,str2=“123”;
D.
char
str1;
str1=
“china”;
4.
以下对二维数组a进行正确初始化的是(

A.
int
a={{1,2},{3,4},{5,6}};
B.
int
a[
]={1,2,3,4,5,6};
C.
int
a[
]={1,2,3,4,5,6};
D.
int
a[
]={{1,2},{3,4}};
5.
选出下列标识符中不是合法的标识符的是(

A.
hot_do
B.
cat1
C.
_pri
D.
2ab
6.
以下说法中正确的是(

A.
C语言程序总是从第一个的函数开始执行
B.
在C语言程序中,要调用的函数必须在main()函数中定义
C.
C语言程序总是从main()函数开始执行
D.
C语言程序中的main()函数必须放在程序的开始部分
7.
若已定义:int
a,
*p=a;并在以后的语句中未改变p的值,不能表示a地址的表达式为(

A.
p+1
B.
a+1
C.
a++
D.
++p
8.
若有说明:
int
i,j=7,
*p=&i,
则与i=j;
等价的语句是(

A.
i=
*p;
B.
*p=*&j
C.
i=&j
D.
i=*
*p;
9.
若变量c为char类型,能正确判断出c为小写字母的表达式是(

A.
‘a’《=c《=
‘z’
B.
(c》=
‘a’)
||
(c《=
‘z’)
C.
(‘a’《=c)
and
(‘z’》=c)
D.
(c》=
‘a’)
&&
(c《=
‘z’)
10.
以下程序的输出结果是(

main()
{
int
a={1,2,3,4,5,6,7,8,9},
*p;
p=a;
*(p+3)+=2;
printf(
“%d,%d\n”,*p,*(p+3)
);
}
A.
0,
5
B.
1,
6
C.
1,
5
D.
0,
6
11.
以下程序的输出结果是(

main()
{
int
a=5;
float
x=3.14;
a*=x*(‘E’-
‘A’);
printf(“%f\n”,(float)a);
}
A.
62.000000
B.
62.800000
C.
63.000000
D.
62
12.
以下程序的输出结果是(

#define
f(x)
x*x
main()
{
int
a=6,b=2,c;
c=f(a)/f(b);
printf(“%d\n”,c);
}
A.
9
B.
6
C.
36
D.
18
13.
定义如下变量和数组:int
i;
int
x={1,2,3,4,5,6,7,8,9};
则语句for(i=0;i《3;i++)
printf("%d
",x);
的输出结果是(

A.
1
5
9
B.
1
4
7
C.
3
5
7
D.
3
6
9
14.
下列程序段的输出结果是


void
main(
)
{
int
k;
for
(k=1;k《5;k++)
{
if(k%2!=0)
printf(
“#”
);
else
printf(“*”)
;
}
}
A.
#*#*
B
.
*#*#
C.
##
D.
**
15.
下列程序执行后输出的结果是(

int
d=1;
fun
(int
p)
{
int
d=5;
d
+
=p
+
+;
printf("%d,",d);
}
main(
)
{
int
a=3;
fun(a);
d
+
=
a
+
+;
printf("%d\n",d);
}
A.
8,
4
B.
9,
6
C.
9,
4
D.
8,
5
二.
填空题(共7题,每空2分,共30分)
1.
数组
int
a;
共定义了_______________个元素。
2.
有float
f=3.1415927;

printf(“%5.4f”,
f
);输出的结果是_______________。
3.
下面程序的功能是:输出
100以内(不包含100)能被
3整除且个位数为
6的所有整数,请填空。
main(
)
{
int
i;
for(i=1;
_______________;
i++)
if
(_______________)
printf("%d",
i);
}
4.
设有“int
x=2,
y”说明,则逗号表达式“y=x+5,x+y”的值是
_______________
5.
以下是使用指针,进行字符串复制的程序,请填空。
main()
{
char
a=
“Tsinghua
University”,
b,
*p1,*p2;
p1=a;
p2=b;
for(;
*p1!=
‘_______________’;
p1++,
p2++)
_______________=_______________;
*p2=
‘_______________’;
printf(“string
a
is:%s\n”,a);
printf(“string
b
is:%s\n”,b);
}
6.
下面程序用冒泡法对数组a进行降序排序,请填空。
main()
{
int
a={4,7,2,5,1};
int
i,j,m;
for(i=0;i《4;i++)
for(j=0;j《_______________;j++)
if(
_______________《
_______________
)
{
m=a[
j];
a[
j]=a[
j+1];
a[
j+1]=
m;
}
for(i=0;i《5;i++)
printf("%d
",a);
}
7.
函数fun的功能是:使一个字符串按逆序存放,请填空。
void
fun
(char
str)
{
char
m;
int
i,j;
for(i=0,j=strlen(str);i《_______________;i++,j--)
{
m=str;
str=
_______________;
str=m;
}
printf("the
rotated
string
is
%s\n",_______________);
}

OK,关于c程序设计语言期末试卷a和北京工业大学计算机专业近几年c语言期末考试题的内容到此结束了,希望对大家有所帮助。

c程序设计语言期末试卷a(北京工业大学计算机专业近几年c语言期末考试题)

本文编辑:admin

更多文章:


androidapp源码免费下载(如何实现APK的反编译得到APK的源码)

androidapp源码免费下载(如何实现APK的反编译得到APK的源码)

本篇文章给大家谈谈androidapp源码免费下载,以及如何实现APK的反编译得到APK的源码对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月22日 18:00

security的反义词(risk的反义词)

security的反义词(risk的反义词)

大家好,今天小编来为大家解答以下的问题,关于security的反义词,risk的反义词这个很多人还不知道,现在让我们一起来看看吧!

2026年9月22日 15:40

二郎神杨戬简笔画(二郎神怎么画)

二郎神杨戬简笔画(二郎神怎么画)

本篇文章给大家谈谈二郎神杨戬简笔画,以及二郎神怎么画对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月22日 10:50

service pack 3(操作系统版本升级(SP) Service Pack 3当中的“Service Pack 3”是什么意思)

service pack 3(操作系统版本升级(SP) Service Pack 3当中的“Service Pack 3”是什么意思)

大家好,关于service pack 3很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于操作系统版本升级(SP) Service Pack 3当中的“Service Pack 3”是什么意思的知识点,相信应该可以解决大家的一

2026年9月22日 10:20

html代码怎么写大佬教程(html网页的题来个大佬,写代码,题目在图上)

html代码怎么写大佬教程(html网页的题来个大佬,写代码,题目在图上)

本篇文章给大家谈谈html代码怎么写大佬教程,以及html网页的题来个大佬,写代码,题目在图上对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月22日 10:10

结构体内又一个struct(c++ 在结构体中再嵌入一个结构体如何调用)

结构体内又一个struct(c++ 在结构体中再嵌入一个结构体如何调用)

本篇文章给大家谈谈结构体内又一个struct,以及c++ 在结构体中再嵌入一个结构体如何调用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月22日 09:40

next是什么意思英语(next是什么单词)

next是什么意思英语(next是什么单词)

本篇文章给大家谈谈next是什么意思英语,以及next是什么单词对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月22日 07:50

美国参议院人数(美国每个州的议员人数取决于什么)

美国参议院人数(美国每个州的议员人数取决于什么)

大家好,今天小编来为大家解答以下的问题,关于美国参议院人数,美国每个州的议员人数取决于什么这个很多人还不知道,现在让我们一起来看看吧!

2026年9月22日 05:20

高中信息技术python(高考信息技术用的是什么语言)

高中信息技术python(高考信息技术用的是什么语言)

今天给各位分享高考信息技术用的是什么语言的知识,其中也会对高考信息技术用的是什么语言进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月22日 02:50

cocos creator中文(cocoscreator和cocoscreator3d的区别)

cocos creator中文(cocoscreator和cocoscreator3d的区别)

各位老铁们好,相信很多人对cocos creator中文都不是特别的了解,因此呢,今天就来为大家分享下关于cocos creator中文以及cocoscreator和cocoscreator3d的区别的问题知识,还望可以帮助大家,解决大家的

2026年9月22日 02:30

最近更新

诸城网站制作需要哪些资料?
2026-09-22 19:00:55 浏览:0
湖南长沙个人网站建设多少钱?
2026-09-22 18:59:57 浏览:0
酷网站怎么从零开始搭建?
2026-09-22 18:59:28 浏览:0
上海本地商家关键词优化怎么做?
2026-09-22 18:58:54 浏览:0
热门文章

wait for you杨和苏(大家听下(wait for you)这首英文歌的开头那段音乐)
2026-06-13 16:20:04 浏览:22
刷关键字排名怎么操作最有效?
2026-09-14 20:02:13 浏览:14
oppo a9拆机教程(oppoa9拆机教程)
2026-06-13 10:40:02 浏览:12
标签列表