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

2020-02-28 其他范文 下载本文

北航C语言期末模拟试题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言期末模拟试题”。

单选题

下列关于单目运算符++、--的叙述中正确的是(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++

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

填空题

若有定义: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

/********** 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

/*-----------------【程序设计】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

程序改错题

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

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

把它和数组中最前面的元素即第一个数对换位置.-----------------------*/ #include “stdio.h” main(){ int i,a[10],min,k=0;printf(“n please input array 10 elementsn”);for(i=0;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语言期末模拟试题.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
北航C语言期末模拟试题
点击下载文档
相关专题 c语言期末模拟试题 北航 模拟试题 期末 c语言期末模拟试题 北航 模拟试题 期末
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文