大连理工大学2012c语言期末模拟试题及答案
发布时间:2024-08-29
发布时间:2024-08-29
一、
1/字符串"\\\'efg\'\\"的长度是:( ).
A、3 B、11 C、7 D、5
2、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。
A、double B、不确定 C、int D、float
3、下列语句的结果是()。 main() { int j; j=3;
printf("%d,",++j); printf("%d",j++); }
A、3,3 B、4,4 C、3,4 D、4,3
4、逻辑表达式!(2-1)&&x||0的值是( )
A、1 B、0 C、3 D、2
5、int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为()。
A、3 B、2 C、1
D、不一定
6、执行语句 for(i=1;i++<4;); 后变量 i 的值是()。
A、3 B、5 C、4 D、不定
7、以下正确的描述是( ).
A、只能用continue语句来终止本次循环 B、switch语句中不能出现continue语句 C、在循环中break语句不能独立出现 D、goto语句只能用于退出多层循环
8、下面合法的语句定义是( ).
A、char a[ ]={'0','1','2','3','4','5'}; B、int a[ ]="string";
C、int a[5]={0,1,2,3,4,5}; D、char a="string";
9、char a[10];不能将字符串"abc"存储在数组中的是()。
A、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; B、a="abc";
C、strcpy(a,"abc");
D、a[0]=0;strcat(a,"abc");
10、在C语言中,一维数组的定义方式为:类型说明符 数组名()。
A、[整型常量]或[整型表达式] B、[正整型常量表达式] C、[整型表达式] D、[常量表达式]
11、在定义全局变量和局部静态变量的同时赋值,变量的初始化在( )时确定的.
A、运行 B、编辑 C、编译 D、调试
12、关于建立函数的目的,以下正确的说法是()。
A、提高程序的可读性 B、减少程序文件所占内存 C、减少程序的篇幅
D、提高程序的执行效率
13、以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));
A、3 B、5
C、语法错误 D、2
14、设有宏定义#define SUB(x,y) (x)*y,且a=3,b=4,则 SUB(a++,b++) 的值为( ).
A、13 B、16 C、20 D、12
15、变量p为指针变量,若p=&a,下列写法不正确的是()。
A、*(p++)==a++ B、&*p==&a
C、(*p)++==a++ D、*&a==a
16、下列程序正确的运行结果为( ). #include<stdio.h> main() {
union u
{char *name; int age; int income; } s;
http://www.77cn.com.cn="WANGLING"; s.age=28;
s.income=1000;
printf("%d\n", s.age); }
A、8 B、28 C、1000 D、不确定
17、定义my_file 为文件型指针变量,使用fopen只读方式打开一个已存在的二进制文件,以下正 确的调用形式为( ).
A、my_file=fopen("my.dat", "r"); B、my_file=fopen("my.dat", "rb+"); C、my_file=fopen("my.dat", "rb"); D、my_file=fopen("my.dat", "r+");
二、
1、若i =3,则printf("%d",-i++);输出的值为 -4。 2、格式字符%x用来以八进制形式输出整数.
3、设u=1,v=2,w=3,则逻辑表达式u||v-w&&v+w的值为0. 4、已知a=4,b=2,c=3,d=5,表达式a>b?a:c<d?c:d的值为3. 5、break语句能够终止当前进行的多层循环. 6、break语句不能终止正在进行的多层循环. 7、若有定义和语句:
int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0; for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21.
8、二维数组在内存中存贮时,是按行的顺序进行存储的。 9、C语言中引用数组元素的方括号可以用花括号代替.
10、每次调用函数时,都要对静态局部变量重新进行初始化.
11、在程序中的第二个函数之后定义了某全局变量,则该程序的所有函数均可使用它. 12、在C程序中 , 函数既可以嵌套定义 , 也可以嵌套调用 13、在定义宏时,在宏名与带参数的括弧之间不应加空格. 14、数组名与指针变量是相互等价的.
15、两个类型相同的结构体变量,可以互相赋值.
16、C语言中,在打开文件时,必须说明文件的使用方式,"r+"用于打开一个不存在的文件. 三、
1、设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为_____.
2、在C语言中,long类型数据占_____个字节, short类型数据占_____个字节. 3、int x=2,y=3,z=4; 则表达式x+y>z&&y==z的值为_____. 4、int x=2,y=3,z=4; 则表达式x+y&&(x=y)的值为_____.
5、C语言中,二维数组在内存中的存放方式为按_____优先存放. 6、函数调用时的实参和形参之间的数据是单向的_____传递.
7、结构体是不同数据类型的数据集合,作为数据类型, 必须先说明结构体_____,再说明结构体变量.
8、调用 fopen 函数打开一文本文件,在"使用方式"这一项中, 为输入而打开需填入_____. 四、 1、/*-------------------------------------
----------- 【程序设计】
--------------------------------------------------
功能:求出二维数组外围元素之和,作为函数值返回。二
维数组的值在主函数中赋予。
-------------------------------------------------*/ #define M 4 #define N 5
#include "stdio.h"
int fun(int a[M][N]) {
/*********Begin**********/
/********** End **********/ }
main() {
int
a[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}}; void TestFunc(); int y; y=fun(a); 2、
/*------------------------------------------------ 【程序设计】
--------------------------------------------------
功能:找出一个大于给定整数且紧随这个整数的素数,并
作为函数值返回。
------------------------------------------------*/
#include "stdio.h"
printf("s=%d\n",y); TestFunc(); }
void TestFunc() {
FILE *IN,*OUT;
int iIN[M][N],iOUT; int i,j,k;
IN=fopen("14.in","r"); if(IN==NULL)
{printf("Please Verify The Currernt Dir..It May Be Changed"); }
OUT=fopen("14.out","w"); if(OUT==NULL)
{printf("Please Verify The Current Dir.. It May Be Changed"); }
for(k=0;k<10;k++) { for(i=0;i<M;i++) for(j=0;j<N;j++)
fscanf(IN,"%d",&iIN[i][j]);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT); }
fclose(IN); fclose(OUT); }
#include"conio.h"
int fun(int n) {
/*********Begin**********/
/********** End **********/ }
void TestFunc() {
FILE *IN,*OUT; int s ; int t; int o;
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(s=1;s<=5;s++)
五、 1、
/*------------------------------------------------------ 【程序改错】
--------------------------------------------------------
功能:一个5位数,判断它是不是回文数。即12321是回文数,个
位与万位相同,十位与千位相同。
------------------------------------------------------*/
#include "stdio.h" main( ) 2、
/*------------------------------------------------------ 【程序改错】
--------------------------------------------------------
功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值
小于等于0.0001。
{
fscanf(IN,"%d",&t); o=fun(t);
fprintf(OUT,"%d\n",o); }
fclose(IN); fclose(OUT); }
main() {
int m;
printf("Enter m: "); scanf("%d", &m); printf("\nThe result is %d\n", fun(m)); TestFunc(); }
{
/**********ERROR**********/ long ge,shi,qian;wan,x; scanf("%ld",&x);
/**********ERROR**********/ wan=x%10000;
qian=x%10000/1000; shi=x%100/10; ge=x%10;
/**********ERROR**********/ if (ge==wan||shi==qian)
printf("this number is a huiwen\n"); else
printf("this number is not a huiwen\n"); }
π/4= 1- 1/3 + 1/5 - 1/7 ....
------------------------------------------------------*/ #include "stdio.h"
/**********ERROR**********/ #include "math"
void fun() {
int i=1;
/**********ERROR**********/ int s=0,t=1,p=1;
/**********ERROR**********/ while(fabs(t)<=1e-4) {
s=s+t; p=-p; i=i+2;
六、1、
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:计算并输出500以内最大的10个能被13或17整除的自然数之和。
-------------------------------------------------------*/
#include "stdio.h"
/***********FILL***********/ int fun(_____ ) {
int m=0, mc=0, j, n;
/***********FILL***********/ 2、
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:以下程序中,函数fun的功能是计算x^2-2x+6,主函数中将调用fun函数计算: y1=(x+8)^2-2(x+8)+6 y2=(sin(x))^2-2sin(x)+6 请填空。
---------------------------------------------------------------*/ #include <stdio.h>
t=p/i; }
/**********ERROR**********/ printf("pi=%d\n",s*4); }
main() {
fun(); }
while (k >= 2 && _____) {
/***********FILL***********/ if (k%13 == 0 || _____) {
m=m+k; mc++; } k--; }
/***********FILL***********/ _____; }
main ( ) {
printf("%d\n", fun (500)); }
#include <math.h> double fun(double x) {
return(x*x-2*x+6); }
main() {
/***********FILL***********/ double x, __________; printf("Enter x:"); scanf("%lf",&x);
/***********FILL***********/
y1=fun( _________);
/***********FILL***********/ y2=fun( _________);
printf("y1=%lf,y2=%lf\n", y1, y2);
答案:一、CABBC/BAABB/CADDA/CC 二、NNNNN/YYYNN/NNYNY/N 三、1、1 1.0 1.
2、 4 2
3、 0 4、 1 5、 行 6、 值 7、 类型 8、 r+ r 四、1、int s=0;
int i,j;
for(i=0;i<M;i++)
s=s+a[i][0]+a[i][N-1]; for(j=1;j<N-1;j++)
s=s+a[0][j]+a[M-1][j];
return s;
五、1、long ge,shi,qian,wan,x;
wan=x/10000;
if (ge==wan&&shi==qian) if (shi==qian&&ge==wan) 2、A #include "math.h"
#include <math.h>
B float s=0,t=1,p=1; float s=0,p=1,t=1; float p=1,s=0,t=1; float p=1,t=1,s=0; float t=1,p=1,s=0; float t=1,s=0,p=1; double s=0,t=1,p=1;
float s=0.0,t=1.0,p=1.0; double s=0.0,t=1.0,p=1.0;
}
2、int i,k;
for(i=n+1;;i++){ for(k=2;k<i;k++) if(i%k==0) break; if(k==i) return(i); }
C、while(fabs(t)>1e-4) while(0.0001<fabs(t)) while(1e-4<fabs(t)) while(fabs(t)>0.0001) 六、1、A int k B、 mc < 10 10 > mc mc <= 9 9 >= mc C、k%17 == 0 !(k%17) k/17*17==k D、return m return (m)
单项填空:
1.以下程序段 char
*alp[]={"ABC","DEF","GHI"}; int j; puts(alp[1]); 的输出结果是()。
A、D B、A C、B D、DEF
2.下列表达式中,可作为C合法表达式的是()。
A、3.0%2 B、3=2=1=0 C、[3,2,1,0] D、(3,2,1,0)
3.下面程序的 正确输出结果是( ).(规定用U表示空格) main() {
float x=5.783,y= -10.2345; printf ("x=%-8.2f ,y=%-8.2f \n", x,y); }
A、x=5.78UUUU,y=-10.23UU B、x=5.78,y=-10.23 C、5.78,-10.23
D、x=UUUU5.78,y=UU-10.23
4.当x为偶数或奇数时(0除外),其值都为0的表达式是:( )
A、(x/2*2-x)==0 B、x%2==0 C、!x!=0 D、!(x%2)
5.下列运算符优先级最低的是( ).
A、=
B、+ C、! D、&&
6.设有如下程序段: int k=10; while(k==0) k--;
则下述说明中正确的是( ).
A、循环体一次也不执行 B、循环体执行一次 C、死循环
D、循环体执行10次
7.从循环体内某一层跳出,继续执行循环外的语句是( )。
A、continue语句 B、空语句 C、break语句 D、return语句
8.以下对一维整型数组a的正确说明是()。A、int a(10);
B、int n; scanf("%d",&n); int a[n]; C、int n=10,a[n];
D、#define SIZE 10 (换行) int a[SIZE];
9.以下定义语句中,错误的是()。
A、int n=5,a[n]; B、int a[]={1,2}; C、char s[10]="test"; D、char *a[3];
10.下面叙述中不正确的是( ).
A、可以对字符型数组进行整体输入和输出. B、不可以对浮点型数组进行整体输入和输出. C、可以对整型数组进行整体输入和输出. D、字符型数组可以存放字符串.
11.函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的是( ).
A、实参与形参是双向传递 B、形参可以是表达式 C、形参和实参可以同名
D、实参类型一定要在调用时指定
12.以下错误的描述是:函数调用可以()。A、出现在执行语句中
判断:
B、做为一个函数的实参 C、出现在一个表达式中 D、做为一个函数的形参
13.以下不正确的说法是:C语言规定()。
A、实参可以是常量,变量或表达式 B、实参可以为任何类型
C、形参可以是常量,变量或表达式 D、形参应与其对应的实参类型一致
14.下列形式,不属于编译预处理命令的是( ).
A、#ifdef M B、#undef M C、#if (M>1) D、while (M>1)
15.下面判断正确的是()。
A、char c[4]="abc",d[4]="abc";等价于 char c[4]=d[4]="abc";
B、char str[10]={"china"};等价于char str[10];str[]={"china"}; C、char *a="china";等价于 char *a;*a="china";
D、char *s="china";等价于 char *s;s="china";
16.若有以下结构体定义:
struct example { int x; int y; } vl;
则( )是正确的引用或定义.
A、example.x=10; B、struct v2;v2.x=10; C、example v2;v2.x=10; D、struct example v2={10,3};
17.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(fp)的值为()。
A、-1 B、1
C、一个非0值 D、0
1.如果有一个字符串,其中第十个字符为'\n',则此字符串的 有效字符为9个。
2.格式字符%o用来以十六进制形式输出整数.
3.已知a=3,b=4,c=5,则逻辑表达式!(a>b) && !c||1的值为1.
4.已知x=2,y=2, 执行分支语句 if(x==y) y=1; else y=-1;后,y=-1.
5.continue语句对于while和do-while循环来说,意味着转去计算While表达式. 6.在do-while循环中,根据情况可以省略while.
7.对于字符数为n个的字符串,其占用的内存为n+1个字节空间. 8.puts 函数用来输出一个字符.
9.引用数组元素时,下标可以是整型表达式或整型常量. 10.函数调用结束后,静态局部变量所占用的空间被释放.
11.在一个函数中定义的静态局部变量可以被另一个函数调用.
12.当全局变量与局部变量同名时,在局部变量的作用域范围之内,全局变量起作用. 13.计算机编译系统对宏定义在编译时进行语法检查.
14.若定义 int array[5] , *p; 则赋值语句 p=array;是正确的. 15.共同体变量所占的内存长度等于最长的成员的长度。 16.C语言中,打开一个文件就意味着产生了一个文件.
填空:
1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是_____. 2.已知a=-13,b=6, a%b的十进制数值为_____. 3.已知a=12,写出表达式 0<a&&a<2的值是_____.
4.已知 i=5, 写出语句 a=(i>5)?0:1; 执行后整型变量 a 的值是_____.
5.C语言中,数组名是一个不可变的_____常量,不能对它进行加减和赋值运算. 6.C语言中一个函数由函数首部和_____两部分组成.
7.设有以下共用体类型说明和变量定义,则变量c在内存所占字节数是 _____。
union stud { short int num; char name[10]; float score[5]; double ave; } c; 8.在C语言中,关闭文件即是文件指针不再指向该_____.
程序设计:
1.
/*------------------------------------------------ 【程序设计】
--------------------------------------------------
功能:计算并输出给定整数n的所有因子之和(不包括1与 自身)。
注意:n的值不大于1000。
例如:n的值为855时,应输出704。
------------------------------------------------*/
#include "stdio.h"
int fun(int n) {
/*********Begin**********/
/********** End **********/ }
void TestFunc() {
FILE *IN,*OUT; int iIN,iOUT,i;
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<5;i++) 2.
/*------------------------------------------------------ 【程序设计】
--------------------------------------------------------
功能:删去一维数组中所有重复的数,只保留不同的数。
数组中的数已按由小到大的顺序排列,
函数返回删除后数组中数据的个数。 例如:一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。
删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。
注意:请勿改动主函数main和其它函数中的任何内容。
------------------------------------------------------*/ #include "stdio.h" #define N 80
int fun(int a[],int n) {
/*********Begin**********/
/********** End **********/
{
fscanf(IN,"%d",&iIN); iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT); }
fclose(IN); fclose(OUT); } main() {
printf("s=%d\n",fun(855)); TestFunc(); } } main() {
void TestFunc(); int
a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;
printf("The original data:\n"); for(i=0;i<n;i++) printf("%3d",a[i]); n=fun(a,n);
printf("\n\nThe data after deleted:\n"); for(i=0;i<n;i++) printf("%3d",a[i]); printf("\n\n"); TestFunc(); }
void TestFunc() {
FILE *IN,*OUT; int a[N]; int n; int i;
IN=fopen("in.dat","r"); if(IN==NULL) {
printf("Read File Error");
}
OUT=fopen("out.dat","w"); if(OUT==NULL) {
printf("Write File Error"); }
fscanf(IN,"%d",&n);
程序改错:
1.
/*------------------------------------------------------ 【程序改错】
--------------------------------------------------------
函数fun的功能是:求1到20的阶乘的和。 --------------------------------------*/
#include "stdio.h" main () {
int n,j; 2.
/*------------------------------------------------------ 【程序改错】
--------------------------------------------------------
功能:实现两个字符串的连接。 例如:输入dfdfqe和12345时,则输出dfdfqe12345.
------------------------------------------------------*/ #include"stdio.h" main() {
char s1[80],s2[80];
void scat(char s1[],char s2[]); gets(s1); gets(s2); scat(s1,s2); puts(s1);
程序填空:
1.
for(i=0;i<n;i++) fscanf(IN,"%d",&a[i]); n=fun(a,n);
for(i=0;i<n;i++) fprintf(OUT,"%3d",a[i]); fclose(IN); fclose(OUT); }
float s=0.0,t=1.0; for(n=1;n<=20;n++) {
/**********ERROR**********/ s=1;
for(j=1;j<=n;j++)
/**********ERROR**********/ t=t*n;
/**********ERROR**********/ s+t=s; }
printf("jiecheng=%f\n",s); }
void scat (char s1[],char s2[]) {
int i=0,j=0;
/**********ERROR**********/ while(s1[i]= ='\0') i++; /**********ERROR**********/ while(s2[j]= ='\0') {
/**********ERROR**********/ s2[j]=s1[i]; i++; j++; }
/**********ERROR**********/ s2[j]='\0';
} }
/*-----------------------------------
-------------------- char a[5][9]={" "}; 【程序填空】 int i,j; ------------------------------------- for (i=0;i<5;i++)
-------------------- /***********FILL***********/ for(j=i; _____;j++) 功能:打印以下图形。 a[i][j]='*'; /***********FILL***********/ ***** for(_____;i<5;i++) ***** { ***** for(j=0;j<9;j++) ***** /***********FILL***********/ ***** printf("%c", _____ ); ------------------------------------- /***********FILL***********/
------------------*/ _____; #include "stdio.h" } main ( ) } { 2. for(i=0;________;i++) /*-----------------------------------ave=ave+a[i];
-------------------- ave=ave/n; 【程序填空】 /***********FILL***********/ -------------------------------------_________;
-------------------- } 功能:计算n门课程的平均分。 int main()
{ 例如:若有5门课程的成绩是:90.5, 72, 80,
float 61.5, 55
score[30]={90.5,72,80,61.5,55},aver;
则函数的值为:71.80。
/***********FILL***********/
------------------------------------- aver=fun(_______,5);
------------------*/
printf( "\nAverage score
#include <stdio.h>
is: %5.2f\n",aver);
float fun(float *a,int n)
return 0;
{
}
int i;
float ave=0.0;
/***********FILL***********/ 答案:DDACAACDACCDCDDDD
错错对错对错对错对错错错错对对错
0 -1 0 1 指针、地址 函数体 20 文件
2. 【参考代码】 程序设计:
int i,j=1,k=a[0]; 1. 【参考代码】
int s=0,i;
for(i=2;i<n;i++) if(n%i==0)s=s+i; return s;
for(i=1;i<n;i++) if(k!=a[i]) {a[j++]=a[i]; k=a[i];}
a[j]=0;
return j; 程序改错: 1. 【改错1】 【参考答案】 t=1; t=1.0; 【改错2】 【参考答案】 t= t * j ; t*=j; t=j*t; 【改错3】 【参考答案】 s= s + t ; s+=t; s=t+s; 2. 【改错1】 【参考答案】
while(s1[i]!='\0')i++; while(s1[i])i++; while(s1[i]!=NULL)i++; while(s1[i]!=0)i++; 【改错2】 【参考答案】 while(s2[j]!='\0') while(s2[j]) while(s2[j]!=NULL) while(s2[j]!=0) 【改错3】 【参考答案】 s1[i]=s2[j]; 【改错4】 【参考答案】 s1[i]='\0'; s1[i]=NULL; *(s1+i)='\0'; s1[i]=0; 程序填空: 1.【空1】 【参考答案】 j<i+5 i+5>j j<=i+4
i+4>j 【空2】 【参考答案】 i=0 【空3】 【参考答案】 a[i][j] 【空4】 【参考答案】 printf("\n")
单项选择:
1.sizeof(float)是()。
A、一个浮点表达式 B、一个不合法的表达式
C、函数调用结果是一个整型表达式。 D、一种函数调用
2.下列数据中属于"字符串常量"的是( )。A、'A' B、"ABC" C、ABC D、'ABC'
3.用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法( ). (用"[CR]"表示回车,U表示空格) main() {int i,k;
scanf("i=%d,k=%d",&i,&k); }
A、i=10[CR]k=15[CR] B、i=10,k=15[CR] C、10U15[CR] D、10,15[CR]
4.逻辑表达式3<2||-1&&4>3-!0的值为:( )
A、1 B、3 C、0 D、2
5.下列运算符中是C语言关系运算符的是()。
A、& B、~
C、!= D、!
6.语句while(!E);中的表达式!E等价于()。
A、E==1 B、E!=0 C、E!=1 D、E==0
7.以下正确的描述是( ).
A、只能在循环体内和switch语句内使用break语句
B、continue语句的作用是终止整个循环的执行
C、从多层嵌套的外层循环中退出时,只能使用goto语句
D、在循环体内使用break和continue语句的作用相同
8.下面各语句中,能正确进行赋字符串操作的语句是( ).
A、char s1[5][ ]={"ABCDE"};
B、char s2[6]={'A','B','C','D','E'}; C、char st[ ][ ]={"ABCDE"};
D、char s[5]={'A','B','C','D','E'};
9.若有说明: int a[3][4]={0};则下面正确的叙述是()。
A、数组a中每个元素均可得到初值0 B、只有元素a[0][0]可得到初值0
C、数组a中各元素都可得到初值,但其值不一定为0
D、此说明语句不正确
10.若有说明 int a[3][4];则a数组元素的非法引用是()。
A、a[1][3] B、a[0][4] C、a[0][2*1] D、a[4-2][0]
11.执行下面程序后,输出结果是()。 main()
{ int a,b,c; a=45,b=27,c=0; c=max(a,b);
printf("%d\n",c); }
int max(int x,int y) { int z;
if(x>y) z=x; else z=y; return(z); }
A、72 B、18 C、27 D、45
C、不一定 D、3
12.以下正确的描述是:在C语言程序中()。
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用均可以嵌套 D、函数的定义和函数的调用均不可以嵌套
13.在C语言的函数中,下列正确的说法是()。
A、形参可以是常量和变量 B、可以有也可以没有形参 C、数组名不能作形参 D、必须有形参
16.若有以下程序段,则使用错误的选项是( ).
struct student {
int num; int age; };
struct student stu[3]
={{1001,20},{1002,19},{1004,20}}; main(); {
struct student *p; p=stu; … ; }
A、(*p).num B、(p++)->num C、p=&stu.age D、p++
14.设有宏定义#define PI 3.14 和#define S(r) PI*r*r,则S(2)的值为( ).
A、6.28 B、12.56 C、3.14 D、9.42
17.若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。
A、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B、以上各种说法皆不正确
C、文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 D、文件打开时,原有文件内容被删除,只可作写操作
15.int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是()。
A、4 B、2
判断:
1.#define 和printf 都不是C语句。
2.格式字符%x用来以十六进制形式输出整数.
3.语句if(a>b) printf("%d",a); else printf("%d",b);可以用条件表达式a>b?a:b取代. 4.逻辑表达式-5&&!8的值为1.
5.循环结构中的continue语句是使整个循环终止执行 6.for循环语句不能用于循环次数未知的情况下. 7.引用数组元素时,数组元素下标必须是整型常量. 8.数组的首地址一定是第一个数组元素的地址.
9.数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素. 10.数组名作为函数调用时的实参,实际上传递给形参的是数组全部元素的值. 11.在主函数中,必须要对被调用函数进行类型说明,否则在编译时会出现错误.
上一篇:数控冲床送料机控制系统研究
下一篇:某某物业小区管理规约