北航考研复试C语言题
北航计算机系考研复试上机真题及答案(06-12年)

#include <stdio.h> #include <stdlib.h>
#endif /* JOBDU_H_ */ while(scanf("%d",&N) != EOF){
int i,j; //初始化 memset(data,-1,100*4*sizeof(int)); //读入数据 for(i=0;i<N;i++){
for(j=0;j<N;j++){ scanf("%d",&island[i][j]);
area++;
//printf("i=%d,j=%d\n",i,j); for debug } } } } printf("%d\n",area); } return 0; }
3.【问题描述】
统计关键字出现位置
输入:
一行标准 c 语言代码(字符个数小于 300),统计出该字符串中关键字的 if,while,for 所 在的位置,按照关键字出现的顺序依次输出。注意双引号内的不需要统计。 输入:一行标准 c 语言代码,字符个数小于 300
输入:
第一行输入一个整数 N,表示输入方阵的维数 输入一个 N 维方阵
输出:
小岛面积
样例输入:
6 111111 110001 100010 110111 010100 111111
北航《C语言程序设计》答案

北航《C语言程序设计》在线作业一单选题判断题一、单选题(共15 道试题,共60 分。
)1. 以下叙述中正确的是A. 预处理命令行必须位于源文件的开头B. 在源文件的一行上可以有多条预处理命令C. 宏名必须用大写字母表示D. 宏替换不占用程序的运行时间正确答案:D2. 以下各选项企图说明一种新的类型名,其中正确的是A. typedef v1 int;B. typedef v2=int;C. typedef int v3;D. typedef v4: int;正确答案:C3. C语言对嵌套if语句的规定是:else总是与( )配对。
A. 其之前最近的ifB. 第一个ifC. 其之前最近且不带else的ifD. 缩进位置相同的if正确答案:C4. 已知:#define N 3; 执行语句i=N*3; 后,i=_______.A. 3B. 6C. 9D. 以上均不正确正确答案:C5. 以下选项中可作为C语言合法常量的是A. -8B. -080C. -8e1.0D. -80.0e正确答案:A6. 以下不正确的C语言标识符是_____。
A. ABCB. abcC. a_bcD. ab.c正确答案:D7. 数组int**a[3][4]占据多大空间B. 12C. 48D. 128正确答案:C8. 已知:int x,a,b;下列选项中错误的if语句是______。
()A. if(a=b) x++;B. if(a=<b) x++;C. if(a-b) x++;D. if(x) x++;正确答案:B9. 下列可以正确表示字符型常数的是______。
A. "a"B. …t…C. "n"D. 297正确答案:B10. 表达式:10!=9的值是( )A. trueB. 非零值C. 0D. 1正确答案:D11. 在C语言中,形参的缺省存储类型是( )A. autoB. registerC. staticD. extern正确答案:A12. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为_____。
北航《C语言程序设计》在线作业二满分答案

北航《C语言程序设计》在线作业二一、单选题(共 10 道试题,共 40 分。
)1. 若用数组名作为函数调用时的参数,则实际上传递给形参的是A. 数组元素的个数B. 数组的第一个元素值C. 数组中全部元素的值D. 数组首地址-----------------选择:D2. 下列关于#include命令的叙述中,错误的是A. #include命令中,文件名可以用双引号或尖括号括起来B. 一个被包含文件中又可以包含另一个被包含文件C. 一个#include命令中可以指定多个被包含文件D. 一个#include命令中只能指定一个被包含文件-----------------选择:C3. 在C程序中,若对函数类型未加说明,则函数的隐含类型为( )A. intB. doubleC. voidD. char-----------------选择:A4. 表达式( )的值是0。
A. 3%5B. 3/5.0C. 3/5D. 3<5-----------------选择:C5. 已知:int a=5; 执行以下的程序段后输出结果为_______.Do { printf(“%dn”,a--); } while (!a);A. 5B. 4C. 陷入死循环D. 5 4 3 2 1-----------------选择:A6. 有以下语句:int b;char c[10];,则正确的输入语句是_______A. scanf("%d%s",&b,&c);B. scanf("%d%s",&b,c);C. scanf("%d%s",b,c);D. scanf("%d%s",b,&c);-----------------选择:B7. 若有定义:int x; 要将x强制转换为双精度型,应该写成A. x(double)B. x(double)C. (double)xD. double(x)-----------------选择:C8. 函数形参与实参之间的传递是“值传递”,以下叙述正确的是( )A. 实参和与其对应的形参共用一个存储单元B. 实参和与其对应的形参各占用独立的存储单元C. 当实参和与其对应的形参同名时才共用一个存储单元D. 形参是形式的,不占用存储单元-----------------选择:B9. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为_____。
北京航空航天大学C语言e2第五讲 第一阶段综合训练

课堂练习1, 打印乘法九九表; 课堂练习2, 古典算术问题:搬砖头。
某地需要搬运砖块,已知男人一人搬3块, 女人一人搬2块,小孩两人搬一块。 问用45人正好搬45块砖,有多少种搬法?
1×1=1 2×1=2
9×1=9
要求:清晰写出思路或
2×2=4
9×2=18 9×3=27
关键程序段。
... ...
9×9=81
}
switch (choice) { case 1: price=2.0; case 2: price=2.5; case 3: price=3.0; case 4: price=3.5; default: price=0.0; }
表达式的值=常量表达式 1 的值 语句段1
price=?
表达式的值=常量表达式 2 的值
else if (choice==2) price=2.5;
else if (choice==3) price=3.0; else if (choice==4) price=3.5; else price=0;
2、在switch中不使用break
switch (表达式) {
case 常量表达式1:语句段1 case 常量表达式2:语句段2 ....… case 常量表达式n:语句段n default : 语句段n+1
C程序设计
第六讲 数组
习题讲解
练习6.13 用二分法求下面方程在(-10,10) 3 2 之间的根。2x -4x +3x-6=0 解题分析:首先要求理解什么叫二分法?
▼ x2,f(x2)
x=(x1+x2)/2
x
x1,f(x1)
▲
▲
x,f(x)
北航在线作业C语言答案1

A、1024
B、512
C、256
D、128
答案:C
第4题 C语言中的注释语句用什么标示?
A、/* */
B、//
C、;
D、#
答转换成十六进制数是:
A、64
B、63
C、100
D、144
答案:A
第6题 常数的书写格式决定了常数的类型和值,0x1011是:
A、8进制整型常量
B、字符常量
C、16进制整型常数
D、2进制整型常数
答案:C
第7题 C语言中函数的返回语句是___。
单项选择题
第1题 C语言从哪个函数开始执行?
A、main
B、begin
C、start
D、go
答案:A
第2题 常用的C语言输出函数是___。
A、scanf
B、print
C、printf
D、input
答案:C
正确
错误
答案:正确
第18题 long能表示的最小数是-2^31。
正确
错误
答案:正确
第19题 实型数据在内存中是以指数形式存储的。
正确
错误
答案:正确
第20题 每一个C程序都必须有一个main函数。
正确
正确
错误
答案:正确
第12题 实数只有十进制小数形式和指数形式两种。
正确
错误
答案:正确
第13题 字符数据只占一个字节,只能存放0~255范围内的整数。
正确
错误
答案:正确
c语言面试题目100及最佳答案精选全文

精选全文完整版(可编辑修改)c语言面试题目及最佳答案1、描述⼀下gcc的编译过程?gcc编译过程分为4个阶段:预处理、编译、汇编、链接。
预处理:头⼀件包含、宏替换、条件编译、删除注释编译:主要进⼀词法、语法、语义分析等,检查⼀误后将预处理好的⼀件编译成汇编⼀件。
汇编:将汇编⼀件转换成⼀进制⼀标⼀件链接:将项⼀中的各个⼀进制⼀件+所需的库+启动代码链接成可执⼀⼀件2、内存的最⼀存储单位以及内存的最⼀计量单位分别是?内存的最⼀存储单位为⼀进制位,内存的最⼀计量单位字节3、#include<> 与#include ""的区别?include<>到系统指定⼀录寻找头⼀件,#include ""先到项⼀所在⼀录寻找头⼀件,如果没有找再到系统指定的⼀录下寻找4、描述⼀下变量的命名规则变量名有字⼀、数值、下划线组成,但不能以数值开头5、变量的声明与定义有啥区别?声明变量不需要建⼀存储空间,变量的定义需要建⼀存储空间6、谈谈c语⼀中有符号和⼀符号的区别?有符号:数据的最⼀位为符号位,0表示正数,1表示负数⼀符号:数据的最⼀位不是符号位,⼀是数据的⼀部分7、谈谈计算机中补码的意义统⼀了零的编码将符号位与其他位统⼀处理将减法运算转换成加法运算8、谈谈数组的特点同⼀个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的9、数组的分类数组的分类主要是:静态数组、动态数组两类。
静态数组:类似int arr[5];在程序运⼀就确定了数组的⼀⼀,运⼀过程不能更改数组的⼀⼀。
动态数组:主要是在堆区申请的空间,数组的⼀⼀是在程序运⼀过程中确定,可以更改数组的⼀⼀。
10、描述⼀下⼀维数组的不初始化、部分初始化、完全初始化的不同点不初始化:如果是局部数组数组元素的内容随机如果是全局数组,数组的元素内容为0 部分初始化:未被初始化的部分⼀动补0完全初始化:如果⼀个数组全部初始化可以省略元素的个数数组的⼀⼀由初始化的个数确定11、谈谈数组名作为类型、作为地址、对数组名取地址的区别?数组名作为类型:代表的是整个数组的⼀⼀数组名作为地址:代表的是数组⼀元素的地址对数组名取地址:代表的是数组的⼀地址12、谈谈你对⼀维数组在物理上以及逻辑上的数组维度理解⼀维数组在逻辑上是⼀维的,在物理上是⼀维的13、描述⼀下函数的定义与函数的声明的区别函数定义:是指对函数功能的确⼀,包括指定函数名、函数类型、形参及其类型、函数体等,它是⼀个完整的、独⼀的函数单位。
北京航空航天大学《C语言程序设计》试卷

北京航空航天大学《C语言程序设计》课程考试试卷注意事项: 1、本试卷满分100分;考试时间:90分钟;考试形式:开卷2、请将答案一律写在答题纸上,试卷上作答无效3、考试结束后,考生将试卷及答题纸一并交回4、请将条形码贴在答题纸的指定位置学习中心______________姓名____________学号____________一、单项选择题(本大题共10小题,每小题2分,共20分)1、设有定义语句“char s[]=”123”;”,则表达式“s[3]”的值是______。
()A.' 1' B.'3'C.'\0' D.存在语法错误2、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为______。
()A.自动(auto) B.静态(static)C.外部(extern) D.寄存器(register)3、已知:char w; int x; float y; double z;,则表达式w*x+z-y结果的类型是______。
()A.float B.charC.int D.double4、当声明一个结构变量时,系统分配给它的内存是______。
()A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量5、C语言中的简单数据类型包括______。
()A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型6、合法的数组说明语句是______。
()A.int a[]="string";B.int a[]={0,1,2,3,4,5};C.char a="string";D.char a[5]={'0','1','2','3','4','5,};7、定义int i=1;,执行语句while(i++<5);后,i的值为______。
计算机专业研究生复试-C语言程序设计面试简答题

C语言程序设计1.简述C语⾔采取了哪些措施提⾔执⾔效率●使⽤指针:有些程序⽤其他语⽤也可以实现,但C能够更有效地实现;有些程序⽤法⽤其它语⽤实现,如直接访问硬件,但C却可以。
正因为指针可以拥有类似于汇编的寻址⽤式,所以可以使程序更⽤效。
●使⽤宏函数:宏函数仅仅作为预先写好的代码嵌⽤到当前程序,不会产⽤函数调⽤,所以仅仅是占⽤了空间,⽤使程序可以⽤效运⽤。
在频繁调⽤同⽤个宏函数的时候,该现象尤其突出。
函数和宏函数的区别就在于,宏函数占⽤了⽤量的空间,⽤函数占⽤了时间。
●使⽤位操作:位操作可以减少除法和取模的运算。
在计算机程序中数据的位是可以操作的最⽤数据单位,理论上可以⽤"位运算"来完成所有的运算和操作。
灵活的位操作可以有效地提⽤程序运⽤的效率。
●将汇编指令嵌⽤到C 语⽤程序中,汇编语⽤是效率最⽤的计算机语⽤,因此在C语⽤程序中嵌⽤汇编,从⽤充分利⽤⽤级语⽤和汇编语⽤各⽤的特点。
●系统调用:在C语⽤程序中可以调⽤操作系统级的API,从⽤提⽤程序的运⽤效率。
●条件编译:C语⽤源程序中加上条件编译,让编译器只对满⽤条件的代码进⽤编译,将不满⽤条件的代码舍弃,可以减少编译及执行程序代码量。
●循环嵌套中将较长循环设为内置循环,较短循环设为外置循环,以减少cpu跨切循环层的次数,提⽤程序的运⽤效率。
(操作系统页⽤置换相关,减少页⽤置换次数)●其它诸如寄存器变量、联合体、编译器优化等手段提⽤执⽤效率。
2.if…else和switch区别总结:都是条件选中语句。
但switch语句只能取代if语句的一部分功能。
●比较的范围不同:if 语句可做各种关系比较(只要是boolean 表达式都可以用if 判断)switch语句只能做等式比较,即只能对基本类型进行数值比较。
(switch只能做几个数据类型的等式比较,实现非等式效率低,)switch之后括号内的表达式只能是整型(byte、short、char和int)、枚举型或字符型表达式,不能是长整型或其他任何类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
要求:字符串的查找删除
给定文件filein.txt 按要求输出fileout.txt。
输入: 无空格的字符串
输出: 将filein.txt删除输入的字符串(不区分大小写),输出至fileout.txt
sample
输入:in
输出:将filein.txt 中的In、IN、iN、in删除,每行中的空格全部提前至行首,输出至fileout.txt 例:
filein.txt中的值为:
#include <stdio.h>
int main()
{
printf(" Hi ");
}
输出的fileout.txt为
#clude<stdio.h>
tma()
{
prtf("Hi");
}
程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LINE 100
#define MAX 20
void main()
{
FILE *fin,*fout;
char ch;
char s[MAX],tmp[LINE];
int len,space;
int i,j,k;
if((fin = fopen("filein.txt","r")) == NULL)
{
printf("cannot open \"filein.txt\".\n");
exit(0);
}
if((fout = fopen("fileout.txt","w")) == NULL)
{
printf("cannot open \"fileout.txt\".\n");
exit(0);
}
printf("Please input a string less than 20 characters:");
gets(s);
len = strlen(s);
while(!feof(fin))
{
for (i=0;(ch=fgetc(fin))!='\n'&&ch!=EOF;i++)
tmp[i]=ch;
tmp[i]='\0';
space=0;
for (i=0;i<strlen(tmp);i++)
{
if (tmp[i]==' ') space++;
if (strlen(tmp)>=len)
{
k=i;
for (j=0;j<len;j++)
{
if(tmp[k]==s[j]||tmp[k]-s[j]=='a'-'A'||tmp[k]-s[j]=='A'-'a')
k++;
else
break;
}
if(j==len)
{
k=i;
for(j=0;j<len;j++)
{
if (tmp[k+j]==' ')
space--;
else
tmp[k+j]=' ';
}
i=i+len-1;
}
}
}
for (j=0;j<space;j++)
fputc(' ',fout);
for (i=0;i<strlen(tmp);i++)
{
if (tmp[i]!=' ')
fputc(tmp[i],fout);
}
fputc('\n',fout);
}
fclose(fin);
fclose(fout);
}。