北航C语言期末模拟试题2012

时间:2019-05-14 23:08:26下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《北航C语言期末模拟试题2012》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《北航C语言期末模拟试题2012》。

第一篇:北航C语言期末模拟试题2012

单选题

下列关于单目运算符++、--的叙述中正确的是(D)。

A、它们的运算对象可以是int型变量,但不能是double型变量和float型变量 B、它们的运算对象可以是任何变量和常量

C、它们的运算对象可以是char型变量和int型变量,但不能是float型变量 D、它们的运算对象可以是char型变量、int型变量和float型变量

执行下列程序后,其输出结果是(D)。main(){int a=9;a+=a-=a+a;printf(“%dn”,a);} A、18 B、-9 C、9 D、-18 详解:

优先级:a+=(a-=(a+a))1a+a:18

○2a-=18:此时a=-9;注意,a已经不是9,而是-9了

○3a+=-9:即a=a+(-9)=(-9)+(-9)=-18 ○

打印语句printf(“sTUDENDbTrS”);在屏幕上正确的输出形式是(C).A、sTUDENDS B、TUDENTS C、STUDENT D、sTUDENTS 详解:

知识点:b表示退格;

r表示回车,即将当前位置一道“本行”开头 ○1sTUDEND ○2 sTUDENT ○3 STUDENT

已知键盘输入a=4,b=3,下面程序输出的结果是(C).main(){ int a,b,s;scanf(“%d%d”,&a,&b);s=a;if(a

若给定条件表达式(m)?(a++):(a--),则其中表达式m(B)。

A、和(m==0)等价 B、和(m!=0)等价 C、和(m==1)等价 D、和(m!=1)等价 注意:

此处不能选C,因为“非零的数即表示真”。如当m=2时,值为真,结果是a++;但是若选C,则结果为a--.执行语句 for(i=1;i++<4;);后变量 i 的值是(B)。

A、3 B、5 C、4 D、不定

以下描述中正确的是(C)。

A、由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B、do-while 循环中,根据情况可以省略 while C、在 do-while 循环体中,必须有能使循环退出的操作。

D、do-while 循环由do开始,用while结束,在 while(表达式)后面不能写分号

int a[10];合法的数组元素的最小下标值为(D)。

A、10 B、9 C、1 D、0 题意是a[]的括号内最小数可以是多少,而不是说定义的时候int a[]的括号里最小的数是多少。注意看清题目意思。

以下正确的函数定义是(C).A、double fun(int x, int y){ z=x+y;return z;} B、fun(x, y){ int x, y;double z;z=x/y;return z;} C、float f(int x, int y){float z;z=x/y;return z;} D、fun(int x, y){ int z;return z;}

char a1[]=“abc”,a2[80]=“1234”;将a1串连接到a2串后面的语句是(A)。

A、strcat(a2,a1);B、strcat(a1,a2);C、strcpy(a1,a2);D、strcpy(a2,a1);

若有 char s1[]=“abc”,s2[20],*t=s2;gets(t);则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是(C)。

A、if(strcmp(s2,s1)>0)puts(s2);B、if(strcmp(s2,t)>0)puts(s2);C、if(strcmp(s1,t)>0)puts(s2);D、if(strcmp(s1,s1)>0)puts(s2);strcmp()括号里可以是字符串本身,也可以是字符串的地址(首地址)

已知有宏定义#define SQR(a)2*a*a,则SQR(3+4)的值为(A).A、22 B、32 C、98 D、18

若有说明:int *p,m=5,n;以下正确的程序段是(D)。

A、scanf(“%d”,&n);*p=n;B、p=&n;scanf(“%d”,*p)C、p=&n;scanf(“%d”,&p);D、p=&n;scanf(“%d”,p);注意指针必须先初始化才能进行运算 char h,*s=&h;可将字符H通过指针存入变量h中的语句是(A)。

A、*s='H';B、s='H' C、*s=H;D、s=H;

定义结构体的关键字是(A)。

A、struct B、typedef C、enum D、union

判断题

若 a=3,b=2,c=1 则关系表达式“(a>b)==c” 的值为“真”。T a=(b=4)+(c=6)是一个合法的赋值表达式。T C语言程序中输入一个中间带有空格的字符串时,可以用scanf函数.F 格式字符%e以指数形式输出实数数字部分小数位数7位.F 设g=1,h=2,k=3,则逻辑表达式k+g||!h&&k-h的值为0。F 求解表达式max=(a>b)?a:b的步骤是,先求解条件表达式(a>b),再根据它的值将a或b赋给max.T 语句if(a>b)printf(“%d”,a);else printf(“%d”,b);可以用条件表达式a>b?a:b取代.F break语句能够终止当前进行的多层循环.F for循环的三个表达式都可以省略.T for语句的循环体至少执行一次.F(do …… while 才是)字符串“Da lian”在内存中的存储长度是7.F(因为自动加)定义 int x[5],n;则x=x+n;或x++;都是正确的.F 若有定义 int a[10];则 for(i=0;i<=10;i++)a[i]=i;编译时无语法错误.T 数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.F 当变量的存储类型定义缺省时,系统默认为变量的存储类型为auto类型,分配在动态区.F 两个字符串中的字符个数相同时才能进行字符串大小的比较.F 如果被包含文件中有全局静态变量,它们在用#include命令的源文件中有效.T 假设有int a[10], *p;则p=&a[0]与p=a等价.T 共用体变量中起作用的成员是最后一次存放的成员.T 下面的定义和语句是合法的:file *fp;fp=fopen(“a.txt”,“r”);F

填空题

若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是 _____.c=(a-=(b-5));c=(a%11)+(b=3);9

下列语句输出的结果是_____,int a=-1;printf(“%x”,a);(在vc环境下)ffffffff(8个f,因为是4字节)

设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为_____.1

以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则下划线处应填写_____.ch=getchar();while(ch ____ 'Y')ch=getchar();==

static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为_____.6

静态变量和外部变量的初始化是在_____阶段完成的,而自动变量的赋初值是 在_____时进行的.(编译),(运行/函数调用/调用)1752

将函数func的入口地址赋给指针变量p的语句是_____.p=func;

设有以下结构类型说明和变量定义,则变量b在内存所占字节数是 _____。21 struct stud { short int age;char num[3];float s[2];double ave;} b,*p;

程序设计题

/*-----------------【程序设计】1685-------------------

功能:能计算从1开始到n的自然数的和,n由键盘输入,并在main()函数中输出。

-----------------*/

#include “stdio.h”

int fun(int n){ /*********Begin**********/

int sum=0,i;for(i=1;i<=n;i++)sum=sum+i;return(sum);

/********** End **********/ }

main(){ int m;void TestFunc();printf(“Enter m: ”);scanf(“%d”, &m);printf(“nThe result is %dn”, fun(m));TestFunc();}

void TestFunc(){ FILE *IN,*OUT;int t;int o;int c;IN=fopen(“in.dat”,“r”);if(IN==NULL){ printf(“Read File Error”);} OUT=fopen(“out.dat”,“w”);if(OUT==NULL){ printf(“Write File Error”);} for(c=1;c<=5;c++){ fscanf(IN,“%d”,&t);o=fun(t);fprintf(OUT,“%dn”,o);} fclose(IN);fclose(OUT);}

/*-----------------【程序设计】1599-------------------

功能:调用函数fun判断一个三位数是否“水仙花数”。

在main函数中从键盘输入一个三位数,并输

出判断结果。请编写fun函数。

说明:所谓“水仙花数”是指一3位数,其各位数字立方和

等于该数本身。

例如:153是一个水仙花数,因为153=1+125+27。

-----------------*/

#include “stdio.h”

int fun(int n){

/*********Begin**********/

int bw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%10;if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return 1;else return 0;

/********** End **********/

}

TestFunc(){ FILE *IN,*OUT;int iIN,i;int iOUT;IN=fopen(“in.dat”,“r”);if(IN==NULL){ printf(“Please Verify The Currernt Dir..It May Be Changed”);} OUT=fopen(“out.dat”,“w”);if(OUT==NULL){ printf(“Please Verify The Current Dir..It May Be Changed”);} for(i=0;i<10;i++){ fscanf(IN,“%d”,&iIN);iOUT=fun(iIN);fprintf(OUT,“%dn”,iOUT);} fclose(IN);fclose(OUT);} main(){ int n,flag;scanf(“%d”,&n);flag=fun(n);if(flag)printf(“%d 是水仙花数n”,n);else printf(“%d 不是水仙花数n”,n);TestFunc();}

程序改错题

/*-----------------------【程序改错】1246-------------------------

功能:有一数组内放10个整数,要求找出最小数和它的下标,然后

把它和数组中最前面的元素即第一个数对换位置.-----------------------*/ #include “stdio.h” main(){ int i,a[10],min,k=0;printf(“n please input array 10 elementsn”);for(i=0;i<10;i++)/***********ERROR***********/ scanf(“%d”, a[i]);//scanf(“%d”,&a[i]);for(i=0;i<10;i++)printf(“%d”,a[i]);min=a[0];/***********ERROR***********/ for(i=3;i<10;i++)//for(i=1;i<10;i++)for(i=0;i<10;i++)// for(i=1;i<=9;i++)for(i=0;i<=9;i++)

/***********ERROR***********/ if(a[i]>min)// if(a[i]

/*-----------------------【程序改错】1906-------------------------

功能:以下程序把两个数按由大到小的顺序输出来.-----------------------*/ #include “stdio.h” /***********ERROR***********/ void swap(int *p1,*p2)//swap(int *p1,int *p2)void swap(int *p1,int *p2){ int p;p=*p1;*p1=*p2;*p2=p;}

main(){ int a,b, *p,*q;printf(“input a,b:”);/***********ERROR***********/ scanf(“%d%d”,a,b);//scanf(“%d%d”,&a,&b);p=&a;q=&b;if(a

程序填空题

/*------------------------【程序填空】1324--------------------------

题目:本程序的功能是输入一段数字后,将输出的数字颠倒输出。

请填空。

------------------------*/

#include “stdio.h” main(){ int numb,rdigit;scanf(“%d”,&numb);/***********FILL***********/ while(_____)// numb!=0 numb { rdigit=numb%10;/***********FILL***********/ printf(“%d”,_____);// rdigit numb/=10;} printf(“n”);}

/*------------------------【程序填空】1573--------------------------

题目:本程序用printf函数输出字符串“I am student”,完善程序。

------------------------*/ #include “stdio.h” main(){ int i;char *s1=“I am student”;/***********FILL***********/ for(i=0;s1[i]!=____;i++)// '' /***********FILL***********/ printf(“_____”, s1[i]);//%c }

第二篇:c语言期末复习试题

下面程序运行时,如果从键盘上输入3,5<回车>,程序输出的结果是(C)。void main(void){ int a,b,*pa,*pb;pa=&a;pb=&b;scanf(“%d,%d”,pa,pb);*pa=a+b;*pb=a+b;printf(“a=%d,b=%dn”,a,b);} A.a=13,b=13 B.a=8,b=8 C.a=8,b=13 D.出错

?设有定义:int n1=0, n2, p=&n2, q=&n1;,以下赋值语句中与n2=n1;语句等价的是(A)。A.*p=*q;//将指针q指向的地址里的值(即n1的值),赋给指针p指向的地址里(n2)B.&q=&p;//p 和 q 分别存放n1、n2变量地址的,该地址是由系统分配的,不能赋值 C.p=&n1;D.p=q;

以下程序的运行结果是:(A)。

void main(void){ struct num { int x;int y;}cnum[2]={1,3,2,6};printf(“%dn”,cnum[0].y/cnum[0].x*cnum[1].y);} A.18 B.12 C.6 D.1

若定义了

struct num { int a;int b;}d[3] ={{1,4},{2,5},{6,7}};则执行printf(“%dn”,d[2].a* d[2].b/d[1].b);语句的输出结果是:(C)。A.2 B.2.5 C.8 D.8.4

有如下定义:

struct date { int year,month,day;};struct person { char name[20];char sex;struct date birthday;} a;对结构体变量a的出生年份赋值时,下面正确的赋值语句是:(C)。

A.a.year=2010;B.birthday.year=2010;C.a.birthday.year=2010;D.year=2010;

若变量x和y均为整型,且x=y=1,则表达式y+=x+1的值为(A)。A.3 B.2 C.1 D.无正确结果

表示关系x<=y<=z的c语言表达式为(C)。A.(X<=Y<=Z)B.(X<=Y)AND(Y<=Z)C.(X<=Y)&&(Y<=Z)D.(X<=Y)&(Y<=Z)

若有输入语句“scanf(”%d,%d,%d“ ,&x,&y,&z);”,欲使x的值为10,y的值为20,z的值为30,则正确的输入应为(C): A.10 , 20 ,30〈回车〉 B.10 20 30〈回车〉 C.10,20,30〈回车〉

D.10〈回车〉20〈回车〉30〈回车〉

x为int型变量,执行以下语句后,x的值为(B)。x=10;x+=x-=x-x;A.10 B.20 C.30 D.40

有以下程序: void main(){ ;

; ; } 程序运行后的结果是(D): A.编译时有警告错误 B.编译时有语法错误

C.编译没有错误,但是运行时出错 D.程序正常运行,但是无任何输出

关于if后面一对圆括号中的表达式,叙述正确的是(D)。A.只能用关系表达式 B.只能用逻辑表达式

C.只能用关系表达式或逻辑表达式 D.可以使用任意合法的表达式

以下不正确的if语句是(D)。A.if(ab)&&(b>c)printf(“max=%d”,a);

feof(fp)函数是用来测试fp所指的文件是否结束,如果文件结束,则feof(fp)返回的值是(B): A.0 B.1 C.NULL D.以上答案都不对

调用fopen函数打开一个文件失败时,函数返回的值是(C): A.-1 B.EOF C.NULL D.1

在对文件进行操作时,读文件的含义是(B): A.将内存中的信息存入磁盘 B.将磁盘中的信息输入到内存 C.将CPU中的信息存入磁盘 D.将磁盘中的信息输入到CPU

以下运算符中,优先级最高的是(B)。A.!B.[ ] C.++ D.%

假设有两个字符数组a[80],b[80],则正确的输出语句是(D)。A.puts(a,b);B.printf(“%s %s”,a[],b[]);C.putchar(a,b);D.puts(a);puts(b);

对定义“int a[2];”的正确描述是(B)。A.定义一维数组a,包含a[1]和a[2]两个元素 B.定义一维数组a,包含a[0]和a[1]两个元素

C.定义一维数组a,包含a[0]、a[1]和a[2]三个元素 D.定义一维数组a,包含a(0)、a(1)和a(2)三个元素

在引用数组元素时,其下标表达式的类型必须是(D)。A.字符型 B.整型

C.整型或字符型

D.整型常量或整型表达式

在C程序中,不合法的浮点型常量是(A): A.3.4E2.5 B..456 C.0.820000 D.100.3e5

C程序中,合法的关键字是(A): A.int B.integer C.Int D.Integer

执行循环语句“for(i=1;i<10;i++)a++;”后,变量i的值是(B)。A.9 B.10 C.11 D.不确定

有以下程序段: int t=0;while(t=1)t--;while循环执行的次数是(C)。A.一次也不执行 B.只执行一次 C.无限次 D.执行2次

C语言中while和do-while循环的主要区别为(A)。A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句

While 语句中循环结束的条件是while后面表达式的值是(A)。A.0 B.1 C.-1 D.非0

已经有以下函数定义: fun(char a){ printf((“a=%cn”, a);} 该函数的返回值类型是(C)。A.void B.char C.int D.不确定

以下关于函数调用的描述中错误的是(B)。A.实参可以是常量、表达式或有确定值的变量 B.实参和形参共用同一内存单元 C.实参和形参的类型、个数必须一致

D.只有发生函数调用时,系统才为形参分别存储空间

以下叙述中正确的是(A)。

A.在C语言中静态变量在未赋值时,其值为0 B.在C语言中任何变量在未赋值时,其值为0 C.外部变量在程序的任何函数中均有效

D.函数中任何一个局部变量均无法保留上一次调用时的运行结果

以下正确的描述是(B)。

A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用均不可以嵌套 D.函数的定义和函数的调用均可以嵌套

下面的程序将浮点数写到文件test中,然后读出并显示。

#include main(){FILE *fp;float f=12.34;if((fp=_fopen(“test”,“wb”))==NULL){printf(“Cannotopen file.”);exit(l);} fwrite(&f,sizeof(float),1,fp);rewind(fp);fread(&f,sizeof(float),1,fp);printf(“%fn”,f);fclose(fp);}

下面的函数sum 完成计算1~n的累加和。

sum(int n)

{ if(n<=0)

printf(“data errorn”);

if(n==1)return 1;

else _return(sum(n-1)+n);__________ } 统计学生成绩中不及格的学生名单。#include struct student { long num;char name[20];float score;}stu[6]={{9910110,”wangling”,85},{9910111,”liming”,90.5},{9910112,”fengyong”,90.5},{9910113,”fangjun”,56},{9910114,”sunping”,77.5},{9910115,”kongxiao”,50.5}};main(){ struct student s;int i,count=0;printf(“不及格名单:n”);for(i=0;i<6;i++)if(__stu[i].score______<60){ count++;printf(“%ld:%-12s %.1fn”, stu[i].num, stu[i].name, stu[i].score);} printf(“不及格人数:%dn”,count);} 下面程序是实现1+1/2+1/4+1/6+…+1/50的值,请填空:

main(){ int i=2;float sum=1;while(i<=50){ sum=sum+1/(float)i;i++;i++_;} printf(“sum=%fn”,sum)}

下面程序输入一个字符串,输出其中所出现过的大写英文字母.如输入字符串

“UKSDYckjsjsjJSJJD”;应输出“UKSDYJ”。按程序功能填空。#include main(){ char a[80], b[26];int i,j,k=0;gets(a);for(i=0;a[i]!='';i++)if(a[i]>='A'&&a[i]<='Z'){ for(j=0;j

打开C:CAADATA35中源程序文件pg3101.cpp,该程序是输入一个数x,当x能被5整除时,输出“x能被5整除”的信息,否则输出“x不能被5整除”。检查程序哪里有问题,请修改使之运行能得到正确结果。该源程序内容如下: #include void main(void){ int x,k;printf(“请输入x的值:n”);scanf(“%d”,&x);k=x%5;if(k==0)

printf(“x能被5整除n”);else

printf(“x不能被5整除n”);}

打开C:CAADATA36中的源程序文件pg207.cpp,补充程序并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分),使得程序运行时完成以下功能:编写程序找出3×3矩阵中的最大元素及其行列位置并输出,请在程序中将二维数组的9个元素初始化为以下值: 8 6 4 2 1 9 7 5 3

打开C:CAADATA37中的源程序文件pg301.cpp,按要求补充程序并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分),要求为:编写判断一个数是否为素数的函数fun(),并在主函数调用该函数输出200以内的所有素数。

打开C:CAADATA38中源程序文件pg6101.cpp,该程序有小问题,程序结果不正确。请修改,使程序能正确运行。该源程序内容如下: #include void main(void){ int a[5];printf(“请输入5个整数:”);for(i=0;i<5;i++)

scanf(“%d”,&a[i]);printf(“这5个数为:”);for(i=0;i<5;i++)

printf(“%4d”,a[i]);printf(“n”);}

打开C:CAADATA39中源程序文件pg5104.cpp,该程序是打印1到5的阶乘,有个小问题,请修改,使程序能正确运行。该源程序内容如下: #include int fac(int n){ static int f=1;f=f*n;return f;} void main(){ int i;for(i=1;i<=5;i++)

printf(“%d!=%dn”,i,fac(i));}

打开C:CAADATA40中源程序文件pg2102.cpp,该程序是从键盘输入两个数,在屏幕上输出这两个数。程序中有几处错误,修改程序,使其能够正确运行。该源程序内容如下: #include void main(){ int x,y;printf(“Please enter x,y: ”);scanf(“%d%d”,&x,&y);printf(“x=%d,y=%dn”,x,y);printf(“n”);}

打开C:CAADATA41中的源程序文件pg105.cpp,补充程序使得程序运行时完成以下功能:输入x的值,按照函数:

x(x<1)y= 2x+7(1<=x<10)3x-5(x>=10)

输出y的值。并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。

第三篇:c语言大一期末试题

补考试卷的题型、分值、覆盖范围、难易程度均和上学期的期末考试试卷一样。故,可完全按照上学期期末考试的复习大纲以及训练题进行复习。

1.请编程实现:输入一单精度二维数组a[4][5],计算二维数组中的最大元素的值及其所在位置(行、列),并输出计算结果。

2.请编程实现:输入x的值,按下列公式计算并输出y的值 3x<10

 x  20

xx > 20 5.0

3.从键盘输入十个整数,对输入的数据按照从小到大的顺序进行排序,将排序后的结果输出。

4.计算10个整数中奇数的和及其偶数的和。

5.利用全局变量计算长方体的体积及三个面的面积。

6.只用一个if条件语句实现:输出 100以内(不包含100)能被 3整除且个位数为 6的所有整数。

9、intmain()

{

7、int k=9;

intx=1,y=0,a=0,b=0;switch(k)switch(x){ { case 9: k+=1;case1:switch(y)case 10: k+=1;break;{ case 11: k+=1;case0:a++;break;default: k+=1;case1:b++;break;} } printf(“%d\n”,k);case2:a++;b++;break;

case3:a++;b++;break;

8、intmain()

{

int n;

for(n=1;n<=10;n++)

{

if(n%3==0)continue;

printf(“%d”,n);

}

return 0;

}

}10、for(i=4;i>1;i--)for(j=1;j

第四篇:GPS模拟C语言

GPS模拟

# include # include # include

using namespace std;

ifstream fin(“1.txt”);//ofstream fout(“data_out.txt”);

// 1 double x[5] = {-1, 0, 300, 0, 300};double y[5] = {-1, 450, 450, 0, 0};double t[5];double A, B, D,c = 2982000, p, r;double pi = 3.141592653;double xx, yy;

//三角形算法

void cal(int sign, double t1, double t2, double x1, double y1, double x2, double y2, double px, double py){

double tt1 = c * t1, tt2 = c * t2;

double q, ac;

A = x2 *(x1*x1 + y1*y1x1 *(x2*x2 + y2*y2tt1*tt1)tt2*tt2);

D = tt1 *(x2*x2 + y2*y2tt2 *(x1*x1 + y1*y1ac;

r =(x1*x1 + y1*y10)< 1e-6)

{

switch(h)

{

case 1:

cal(-1, t[2], t[4], 300, 0, 300,-450, 0, 450);

break;

case 2: cal(-1, t[1], t[3],-300, 0,-300,-450,300, 450);

break;

case 3: cal(1, t[1], t[2], 0, 450, 300, 450, 0, 0);

break;

case 4: cal(1, t[1], t[2],-300, 450, 0, 450, 300, 0);

break;

}

break;

} } system(“pause”);return 0;声源定位

#include #include using namespace std;#define Max 50 int N=10;double xi[10];double yi[10];

double ti[10][3];double det(double a[Max][Max],int n)

{ int i,j,start;double k,temp,result=1;for(start=0;start<=n-2;start++){

i=1;

while(a[start][start]==0&&start+i<=n-1)

{

for(j=start;j<=n-1;j++)

{

temp=-1*a[start][j];

a[start][j]=a[start+i][j];

a[start+i][j]=temp;

}

i++;

}

if(start+i==n)continue;

for(i=start+1;i<=n-1;i++)

{

k=a[i][start]/a[start][start];

for(j=start;j<=n-1;j++)

a[i][j]=a[i][j]-k*a[start][j];

} } for(i=0;i<=n-1;i++)

result*=a[i][i];return result;} int equalation(double a[Max][Max+1],double r[Max],int n)

{ double det(double a[Max][Max],int n);double det0[Max][Max],det1[Max][Max];int i,j,k;

for(i=0;i<=n-1;i++)

for(j=0;j<=n-1;j++)

det0[i][j]=a[i][j];if(det(det0,n)==0)return 0;

for(k=0;k<=n-1;k++){

for(i=0;i<=n-1;i++)

for(j=0;j<=n-1;j++)

{

det0[i][j]=a[i][j];

det1[i][j]=a[i][j];

}

for(i=0;i<=n-1;i++)

det1[i][k]=a[i][n];

r[k]=det(det1,n)/det(det0,n);} return 1;} double sqr(double x){ return x*x;} double g(double x,double y,double c,double xi,double yi,double ti){ return sqr(xi-x)+sqr(yi-y)-sqr(c*ti);} double fx(double x,double y,double c,int k)

{ int i;double sum=0;for(i=0;i<=N-1;i++)

sum+=g(x,y,c,xi[i],yi[i],ti[i][k-1])*(xi[i]-x);return sum;} double fy(double x,double y,double c,int k)

{ int i;double sum=0;for(i=0;i<=N-1;i++)

sum+=g(x,y,c,xi[i],yi[i],ti[i][k-1])*(yi[i]-y);return sum;} double fc(double x,double y,double c,int k)

{ int i;double sum=0;for(i=0;i<=N-1;i++)

sum+=g(x,y,c,xi[i],yi[i],ti[i][k-1])*sqr(ti[i][k-1]);return sum;} double fxx(double x,double y,double c,int k)

{ int i;double sum=0;for(i=0;i<=N-1;i++)

sum=sum-2*sqr(xi[i]-x)-g(x,y,c,xi[i],yi[i],ti[i][k-1]);return sum;} double fxy(double x,double y,double c,int k){ int i;double sum=0;for(i=0;i<=N-1;i++)

sum=sum-2*(yi[i]-y)*(xi[i]-x);return sum;} double fxc(double x,double y,double c,int k){ int i;double sum=0;for(i=0;i<=N-1;i++)

sum=sum-2*c*sqr(ti[i][k-1])*(xi[i]-x);return sum;} double fyx(double x,double y,double c,int k){ int i;double sum=0;for(i=0;i<=N-1;i++)

sum=sum-2*(xi[i]-x)*(yi[i]-y);return sum;} double fyy(double x,double y,double c,int k)

{ int i;double sum=0;for(i=0;i<=N-1;i++)

sum=sum-2*sqr(yi[i]-y)-g(x,y,c,xi[i],yi[i],ti[i][k-1]);return sum;} double fyc(double x,double y,double c,int k){ int i;double sum=0;for(i=0;i<=N-1;i++)

sum=sum-2*c*sqr(ti[i][k-1])*(yi[i]-y);return sum;} double fcx(double x,double y,double c,int k){ int i;double sum=0;for(i=0;i<=N-1;i++)

sum=sum-2*(xi[i]-x)*sqr(ti[i][k-1]);return sum;} double fcy(double x,double y,double c,int k){ int i;double sum=0;for(i=0;i<=N-1;i++)

sum=sum-2*(yi[i]-y)*sqr(ti[i][k-1]);return sum;} double fcc(double x,double y,double c,int k){ int i;double sum=0;for(i=0;i<=N-1;i++)

sum=sum-2*c*sqr(sqr(ti[i][k-1]));return sum;} int main(){ int i=0,k;double x,y,c,x0,y0,c0;double a[Max][Max+1],r[Max];freopen(“1.txt”, “r”, stdin);freopen(“1_out.txt”, “w”, stdout);

for(i=0;i<=9;i++){

} cin>>xi[i]>>yi[i];xi[i] /= 10;yi[i] /= 10;

cin>>ti[i][0]>>ti[i][1]>>ti[i][2];for(k=1;k<=3;k++){ cin>>x>>y;

c=0.2;do {

x0=x;y0=y;c0=c;i++;

a[0][0]=fxx(x,y,c,k);a[0][1]=fxy(x,y,c,k);a[0][2]=fxc(x,y,c,k);a[1][0]=fyx(x,y,c,k);a[1][1]=fyy(x,y,c,k);a[1][2]=fyc(x,y,c,k);a[2][0]=fcx(x,y,c,k);a[2][1]=fcy(x,y,c,k);a[2][2]=fcc(x,y,c,k);a[0][3]=x*a[0][0]+y*a[0][1]+c*a[0][2]-fx(x,y,c,k);a[1][3]=x*a[1][0]+y*a[1][1]+c*a[1][2]-fy(x,y,c,k);a[2][3]=x*a[2][0]+y*a[2][1]+c*a[2][2]-fc(x,y,c,k);

if(equalation(a,r,3)==0){

cout<<“第”<

return 0;

}

x=r[0];y=r[1];c=r[2];} while(abs(x-x0)+abs(y-y0)+abs(c-c0)>=1e-6);cout<<“第”<

<<“x=”<

<<“y=”<

<<“参考波速为:c=”<

第五篇:C语言程序设计模拟试题三(含答案)

C语言程序设计模拟试题三(含答案)

1、计算机的存储器完整的应包括 A)软盘、硬盘 B)磁盘、磁带、光盘 C)内存储器、外存储器 D)RAM、ROM

2、计算机中运算器的作用是 A)控制数据的输入/输出

B)控制主存与辅存间的数据交换 C)完成各种算术运算和逻辑运算

D)协调和指挥整个计算机系统的操作

3、软磁盘处于写保护状态时,其中记录的信息 A)绝对不会丢失

B)不能被擦除,但能追加新信息 C)不能通过写磁盘操作被更新

D)不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除

4、光盘根据基制造材料和记录信息的方式不同,一般可分为 A)CD、VCD B)CD、VCD、DVD、MP3 C)只读光盘、可一次性写入光盘、可擦写光盘 D)数据盘、音频信息盘、视频信息盘

5、在计算机系统中,可执行程序是 A)源代码 B)汇编语言代码

C)机器语言代码 D)ASCII码

6、计算机软件系统包括 A)操作系统、网络软件 B)系统软件、应用软件

C)客户端应用软件、服务器端系统软件

D)操作系统、应用软件和网络软件

7、目前,一台计算机要连入Internet,必须安装的硬件是 A)调制解调器或网卡

B)网络操作系统 C)网络查询工具

D)WWW浏览器

8、在多媒体计算机系统中,不能存储多媒体信息的是

A)光盘 B)磁盘

C)磁带 D)光缆

9、要将当前盘当前目录下一个文本文件内容显示在屏幕上,正确的命令形式是 A)TYPE a*.* B)TYPE abc.exe C)TYPE pro.c>PRN D)TYPE abc.txt

10、下列更改文件名的命令中正确的是 A)REN A:file1 C:F1 B)RENAME A: A:file1 C:F1 C)REN A:file1 F1 D)REN A:file1 SUBF1

11、已知A盘为DOS系统启动盘,只有A:DOS下有自动批处理文件,其中内容为: CDDOS MD USER CD USER 由A盘启动DOS系统后,A盘的当前目录是 A)DOS B)DOSUSER C)D)USE

12、MS-DOS是 A)分时操作系统

B)分布式操作系统

C)单用户、单任务操作系统

D)单用户、多任务操作系统

13、在Windows操作系统中,不同文档之间互相复制信息需要借助于 A)剪切板 B)记事本

C)写字板 D)磁盘缓冲器

14、在Windows操作系统中 A)同一时刻可以有多个活动窗口

B)同一时刻可以有多个应用程序在运行,但只有一个活动窗口 C)同一时刻只能有一个打开的窗口

D)DOS应用程序窗口与Windows应用程序窗口不能同时打开着

15、下列叙述中正确的是

A)所有DOS应用程序都可以在Windows操作系统中正确运行

B)所有DOS应用程序都不能在Windows操作系统中正确运行 C)大部分DOS应用程序可以在Windows操作系统中正确运行

D)为DOS5.0以上版本操作系统编写的应用程序可以在Windows操作系统中正确运行

16、下列叙述中正确的是 A)C语言编译时不检查语法 B)C语言的子程序有过程和函数两种 C)C语言的函数可以嵌套定义

D)C语言所有函数都是外部函数

17、以下所列的C语言常量中,错误的是 A)0xFF B)1.2e0.5 C)2L D)'72'

18、下列选项中,合法的C语言关键字是 A)VAR B)cher C)integer D)default

19、以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的C语言表达式是 A)x/y*z B)x*(1/(y*z))C)x/y*1/z D)x/y/z

20、若a为int类型,且其值为3,则执行完表达式 a+=a-=a*a后,a的值是 A)-3 B)9 C)-12 D)6

21、设x、y、t均为int型变量,则执行语句: x=y=3;t=++x||++y;后,y的值为 A)不定值 B)4 C)3 D)1

22、若变量已正确说明为float类型,要通过语句scanf(“%f %f %f ”,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是: A)10<回车> 22<回车> 33<回车>

B)10.0,22.0,33.0<回车>

C)10.0<回车> 22.0 33.0<回车>

D)10 22<回车> 33<回车>

23、若执行以下程序时从键盘上输入9,则输出结果是 Main0 { int n;scanf(“%d”,&n);if(n++<10)printf(“%dn”,n);else printf(“%dn”,n--);} A)11 B)10 C)9 D)8

24、若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是 A)swich(a+b);{ case 1:y=a+b;break;case 0:y=a-b;break;}

B)switch(a*a+b*b){case 3:

case 1:y=a+b;break;case 3:y=b-a,break;}

C)switch a

{ case c1 :y=a-b;break case c2: x=a*d;break default:x=a+b;}

D)switch(a-b){default:y=a*b;break case 3:case 4:x=a+b;break;case 10:case 11:y=a-b;break;}

25、有以下程序段 int k=0 while(k=1)k++;while 循环执行的次数是 A)无限次

B)有语法错,不能执行 C)一次也不执行

D)执行1次

26、以下程序执行后sum的值是 min(){ int i , sum;for(i=1;i<6;i++)sum+=i;printf(“%dn”,sum);} A)15 B)14 C)不确定 D)0

27、有以下程序段 int x=3 do { printf(“%d”,x-=2);} while(!(--x));其输出结果是 A)1 B)3 0 C)1-2 D)死循环

28、若变量c为char类型,能正确判断出c为小写字母的表达式是 A)'a'<=c<= 'z' B)(c>= 'a')||(c<= 'z')C)('a'<=c)and('z'>=c)D)(c>= 'a')&&(c<= 'z')

29、以下所列的各函数首部中,正确的是 A)void play(var :Integer,var b:Integer)B)void play(int a,b)C)void play(int a,int b)D)Sub play(a as integer,b as integer)

30、以下程序的输出结果是 fun(int x, int y, int z){ z=x*x+y*y;} main(){ int a=31;fun(5,2,a);printf(“%d”,a);} A)0 B)29 C)31 D)无定值

31、下列程序段的输出结果是 void fun(int *x, int *y){

printf(“%d %d”, *x, *y);*x=3;*y=4;} main(){ int x=1,y=2;fun(&y,&x);printf(“%d %d”,x, y);} A)2 1 4 3 B)1 2 1 2 C)1 2 3 4 D)2 1 1 2

32、下列程序的输出结果是 main()

{char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf(“%d”,*--p);} A)非法 B)a[4]的地址

C)5 D)3

33、下列程序的运行结果是 void fun(int *a, int *b){ int *k;k=a;a=b;b=k;} main(){ int a=3, b=6, *x=&a, *y=&b;fun(x,y);printf(“%d %d”, a, b);} A)6 3 B)3 6 C)编译出错 D)0 0

34、下面程序的输出结果是 main(){int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf(“%dn”,*p+9);} A)0 B)1 C)10 D)9

35、当调用函数时,实参是一个数组名,则向函数传送的是 A)数组的长度

B)数组的首地址

C)数组每一个元素的地址

D)数组每个元素中的值

36、设有以下说明语句 struct ex { int x;float y;char z;} example;则下面的叙述中不正确的是 A)struct结构体类型的关键字

B)example是结构体类型名 C)x,y,z都是结构体成员名

D)struct ex是结构体类型

37、以下只有在使用时才为该类型变量分配内存的存储类说明是 A)auto和 static B)auto和 register C)register和 static D)extern和 register

38、若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是 A)EOF B)-1 C)非零值 D)NULL

39、以下程序的输出结果是 main(){ int i, k, a[10], p[3];k=5;for(i=0;i<10;i++)a[i ]=i;for(i=0;i<3;i++)p[i ]=a[i *(i+1)];for(i=0;i<3;i++)k+=p[i] *2;printf(“%dn”,k);} A)20 B)21 C)22 D)23

40、以下程序的输出结果是 main(){ int i, x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d,”,x[i][2-i]);} A)1,5,9 B)1,4,7 C)3,5,7 D)3,6,9

41、以下程序的输出结果是 main(){ int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(“%dn”,s);} A)18 B)19 C)20 D)21

42、以下程序的输出结果是 main(){ char w[][10]={ “ABCD”,“EFGH”,“IJKL”,“MNOP”},k;for(k=1;k<3;k++)printf(“%sn”,w[k]);}

A)ABCD FGH KL

B)ABCD EFG IJ M

C)EFG JK O

D)EFGH IJKL

43、当执行下面的程序时,如果输入ABC,则输出结果是 #include “stdio.h” #include “string.h” main(){ char ss[10]=“1,2,3,4,5”;gets(ss);strcat(ss, “6789”);printf(“%sn”,ss);} A)ABC6789 B)ABC67 C)12345ABC6 D)ABC456789

44、假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入: PROG ABCDEFGH IJKL<回车>,则输出结果为

main(int argc, char *argv[])){ while(--argc>0)printf(“%s”,argv[argc]);printf(“n”);} A)ABCDEFG B)IJHL

C)ABCDEFGHIJKL D)IJKLABCDEFGH

45、以下程序的输出结果是 long fun(int n){ long s;if(n= =1 || n= =2)s=2;else s=n-fun(n-1);return s;} main(){ printf(“%ldn”, fun(3));} A)1 B)2 C)3 D)4

46、以下程序的输出结果是 #define SQR(X)X*X main(){ int a=16, k=2, m=1;a/=SQR(k+m)/SQR(k+m);printf(“dn”,a);} A)16 B)2 C)9 D)1

47、若定义了以下函数: void f(……){……

*p=(double *)malloc(10*sizeof(double));…… } p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是 A)double *p B)float **p C)double **p D)float *p

48、以下程序的输出是 struct st { int x;int *y;} *p;int dt[4]={ 10,20,30,40 };struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};main(){ p=aa;printf(“%dn”,++(p->x));} A)10 B)11 C)51 D)60

49、假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是 A)free(q);p->next=q->next;B)(*p).next=(*q).next;free(q);C)q=(*q).next;(*p).next=q;free(q);D)q=q->next;p->next=q;p=p->next;free(p);

50、以下程序的输出结果是 main(){ int x=0.5;char z='a';printf(“%dn”,(x&1)&&(z<'z'));}

A)0 B)1 C)2 D)3

答案:

CCCCC BADDC CCABC DBDAC CBBDA CCDCC ACBCB BBCBC ADADA BCCBB

下载北航C语言期末模拟试题2012word格式文档
下载北航C语言期末模拟试题2012.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C语言期末总结

    结构体 例10.4 指向结构体数组的指针的应用#include struct student { int num;char name[20];char sex;int age;}; struct student stu[3]={{10101,″Li Lin″,′M′,18},{1......

    c语言期末复习

    谁能出线 电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多......

    c语言试题及答案

    一、 单选题 1.在C语言中,下列类型属于构造类型的是( D ) A.整型 B.字符型 C.实型 D.数组类型 2.下列字符串不是标识符的是( D ) A. sum B. Average C. Day_night D. M.D.JOHN 3.......

    学前儿童语言教育期末模拟试题

    学前儿童语言教育期末模拟试题 一、填空题(每空1分,共20分) 1.语言包括 语言和 语言,所以语言既是人类的话语,也是一种 。 2.学前儿童语言教育主要是研究学前儿童 、 和 的过程。......

    大一上学期C语言期末复习总结和模拟试题带答案

    易错点 C语言中易犯的错误 对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,一些C编程时常犯的错误,写给各位学员以供参考.......

    C语言模拟ATM机

    一、 实验目的 通过设计一个ATM机模拟操作的程序,全面运用课程的主要知识点,巩固对模块化程序设计、文件操作的理解,提高软件编程能力。 二、 实验要求 要求每人独立完成设计,编......

    期末C语言课程总结报告

    《期末C语言课程总结报告》 报告人情况: 班级: 姓名: 学号: 理论课老师姓名: 实验课老师姓名: 以下写的内容要求如下:通过程序设计课的学习,本人所学到的有关程序设计的知识回顾,学......

    C语言编程期末试题答案

    科目:C语言编程 适用班级: 11级计算机1、2班试题答案 一、单选题(每小题2分,共30分) 1.、A2、.B3、.D4、.A5、A6、A7、C8、.C9、.A.10、A11、.A12、 C13、D14、A15、D 二、填空......