程序设计基础-C语言(一)_第1页
程序设计基础-C语言(一)_第2页
程序设计基础-C语言(一)_第3页
程序设计基础-C语言(一)_第4页
程序设计基础-C语言(一)_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言(Al卷)

一、单项选择题(每题2分.共10分)

1.一个C程序的执行是从A

A本程序的main函数开始,到main函数结束。

B本程序的第一个函数开始,到本程序最后一个函数结束。

C本程序的main函数开始,到本程序文件的最后一个函数结束。

D本程序的第一个函数开始,到本程序main函数结束。

2.以下描述正确的是C

A)goto语句只能用于退缩出多层循环。B)switch语句中不能出现continue语句。

0只能用continue语句中来终止本次循环。D)在循环语句中break语句不独立出现.

3.C语言中,要求运算数必须都是整数的运算符是(C)o

A.*B.-C.%D.+

4.假定inti=3,j=4;执行语句:printf(*%d,%d,%d\n*,i+++j,i,j);之后,其输出结果为:

(C)

A.7,4,4B.8,4,4C.7,3,4D.7,3,5

5.对break语句的正确描述。(A)

A.break语句在while语句中,立即终止执行while语句。B.break语句不能用-于循环语

句之外的语句。

C.break语句与continue语句功能相同。D.break语句可以带参数,也

可以不带。

6.在C语言中,下面那一个不是正确的概念(A)

A.所有循环语句都要求至少要执行一次循环体。B.got。和if语句能构成循环语句。

C.循环过程只能包含,不能交叉。D.循环体可以是一条语句。

7.对函数的正确描述(C)

A.在C语言中可以嵌套定义函数。B.自定义函数和调月函数可以不在一个源文件中。

C.困数定义都是平行的,独立的。D.不能嵌套调用困数。

8.若用数组名作为函数调用的实参,传给形参的是(A)

A.数组的首地址B.数组的第一个元素值C.数组的全部元素值D.数组中元素

的个数

9.对于int*p;inta[];p=a;的合法运算(C)

A.a++;B.p=a;p++;相当于a++;

C.++p;相当于a[l];D.若p中的地址为100则p-+;运算后,则其值为100

10.假设intx[]={1,3,5,7,9,11),*ptr;ptr=x;以下那些是对数组元素的正确引用(

D)

A.*(ptr-)B.x[6]C.*(—ptr)D.*(ptr++)

11.执行以下语句后的结果为(A)

enumweekday{sun,mon=3,tue,wed,thu};

enumweekdayworkday;

workday=wed;

printfC,%d\n,\workday);

A.5B.3C.4D.编译出错

12.要定义一个结构体类型拟包含两个成员,其中成员变量info用来存放整型数据,成员变量

link是指向自身结构体的指针。则下面的定义正确的是(D)0

A.structnode{intinfo;structnodelink;};

B.structnode(intinfojnode*1ink;};

C.structnode{intinfojstruct*link:};

D.structnode{intinfo;structnode*link;};

13.以下与函数fseek(fp,OL,SEEK_SET)有相同作用的是(D)。

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rcwind(fp)

14.如果inta=0x3;intb=0x4;执行运算:x=a&b;则x的结果是(A)

A.0B.3C.4D.7

15.使用宏定义时,对宏定义不正确概念的描述(C)

A.宏名可以是大写或者小写B.宏名常用大写字母表示。C.宏名就是变量D.根据宏名来实现忠

实的替换

二、判断题(每小题1分,共11分)

1(V

)用户可以重新定义标准库函数,若如此,该函数将失去原有含义。

2(X

)字符数组中只能存放键盘上可以找到的字符。

3(X

)在C语言中,引用数组元素时,其数组下标的数据类型可以是任何类型的表达式。

4(X

)在循环体内使用break语句或continue语句的作用相同。

5(V

)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。

6.(V)while循环体中,一定要有能使while后面表达式的值变为“假”的操作。

7.(J)为了避免在嵌套的条件语句if-else中产生二义性,C语言规定else子句总是与

其之前最近的if配对。

8.(X)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入

实型数值。

9.(V)在函数内定义的变量只在本函数范围内有效。

10.(X)(:语言允许main函数带形参,且形参个数和形参名均可由用户指定。

11.(V)结构体是一种可由用户构造的数据类型。

三、分析程序给出运行结果(每题5分,共25分)

1.给出以下程序的运行结果。

#include"stdio.h"

#include“string,h”

voidmain()

{chars[20]=*abcd*;

printf(/z%d,%d\n”,sizeof(s),strlen(s));

}

答案:20,4

2.分析下面程序的运行结果。

^include<stdio.h>

intf(inta);

intmainO

{intf(int);

inta=2,i;

for(i=0;i<3;i++)

(

printf('%d”,f(a));

)

return0;

}

intf(inta)

{autointb=0;

staticintc=3;

b=b+1;

c=c+1;

return(a+b+c);

}

答案:789

3.分析下面程序的运行结果。

#include<stdio.h>

main()

{inta=0xl237;

printf("a=%x\n",a);

printf(M%x\nM,(a»4)&~~04));

return0;

1

答案:3

4.给出下列程序的运行结果

4definePR(x)printf(,zoctal=%o;hex=%x\n,z,x,x)

#include<stdio.h>

main()

{unsigneda=0252,b=0xcc,x;

x=ab;

PR(x);

x=a"b;

PR(x);

)

答案:octal=356;hex=ee

octal=146;hex=66

5.分析下面程序,给出运行结果。

ttinclude<stdio.h>//cppl31

main()

{inta=0xl237;

printf(<<a=%x\nn,a);

printf(“取a中的多位数据是:”);

printf(“舟x\n”,(a»4)&~~0<<4));

return0;

}

答:2

四、完善程序填空题(每小题7分,共14分)

(1)以下程序是将矩阵a,b的和,存入矩阵c中,并按矩阵形式输出。请填空。

main()

{inta[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2)};

intb[3][4]={{-2,0,1,4),{5,-1,7,6},{6,8,0,2}};

inti,j,c[3][4];

for(i=0;i<3;i++)

for(j=0;j<4;j++)

c[iHi>a[i][j]4-b[i][j];

for(i=0;i<3;i++)

{for(j=0;j<4;j++)

printf(a%3dw,cli][j]);

printf(“\n”);

)

}

(2)请编制成程序实现:将100~200之间的素数输出。

答:算法如下:

ttinclude<stdio.h>

intmain()

{intx=100:

intn=2;

mmm:x++;

while(x<=200)

{if(x%a—0)

gotoninun;

if(a>=x/2)

{prir.tf("%d",x);

a=2;

gotommm;

)

else++a;

}

五、编程题(每题10分,共20分)

1.请编制程序实现:检查一个二维数组是否对称(即对所有i,j都有

答:算法如下:

main()

{inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4);

intI,j,found=0;

for(j=0;j<4;j++)

for(i=j+l;i<4;i++)

if(a[j][i]!=a[i][j])

{found=l;

break;

)

if(found==l)

printf(ttN0H);

else

printf(“YES”);

)

2.请编制程序实现:选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个

数。

答:算法如下:

sub(intk,intn)

{intal,a2;

a2=k/10;

al=k-a2*10;

if((k%3=0&&a2==5)||(k%3==0&&al=5))

{printf(u%dn,k);

n++;

returnn;

)

elsereturn-1;

)

mainO

(intn=O,k,m;

for(k=10;k<=99;k++)

{m=sub(k,n);

if(m!=-1)

)

printf(w\nn=%dw,n);

)

C语言(A2卷)

一、单项选择题(每题2分,共30分)

1.下面的四个选项中,均不是合法的用户标识符的选项是(B)

A)BB)b-aC)floatD)_123

M_0goto2abtemp

Doin:_AINT

2.有输入语句:scanf(rta=%d,b=%d,c=%d",&a,&b,&c);为使变量a,b,c的值分别为1,3,

2,从键盘上输入数据的正确形式应当是(B)

A)132〈回车〉B)a=l,b=3,c=2(回车>C)a=lb=3c=a<回车>D)1,3,2(回车)

3.如果输入信息为:1234567则执行语句:

scanfC%2d%2dz,,&x,ty);之后,x,y的值为(A)

A.x为12,y为34B.x为2,y为3C.x为12,y为67D.x为1234567,y

为。

4.对于for(表达式1:表达式2;表达式3)语句的正确描述(B)

A.表达式2省略,循环不执行。B.表达式3省略,可在循环体中修改循环控制变量,以保

证正常退出。

C.三个表达式均不能省略。D.三个表达式均不能省略。但分号可以省略。

5.以下叙述中错误的是(B)o

A.循环语句嵌套必须是同类型的语句B.循环语句嵌套可以是同类型的语句,也可以不同类型

C.do_while循环语句和while循环语句的程序执行方式都是相同的。D.循环体中不能再有循

环语句

6.有下面的程序段

chara[3],b[]="student”;

a=b;

printf("%sM,a);

则(D)

A.运行后将输出studentC.运行后将输出b;R.运行后将输出a

D.编译出错

7.当数组作函数参数时,选出不正确的描述。(D)

A.实参数组与形参数组类型应一致。B.数组元素做函数实参时,同变量做实参一样是参数

传值。

C.形参数组可以不定义数组大小。D.实参数组与形参数组大小必须一致,否则C编译会

检查出错。

8.在C语言中,函数返回值的类型最终取决于(A)o

A.函数定义时在函数首部所说明的函数类型B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型

9.若有说明int则以下正确的描述(B)

A.p是一个指针数组。B.p是一个指针,它只能指向一个包含3个int.类型元素的数组。

C.p是一个指针,它可以指向一个一维数组中的任意元素。D.(*p)[3]与*p[3]等价。

10.执行下面程序之后,m的值为(C).

#include<stdio.h>

main()

{staticinta[2][3]={{1,2,3},{4,5,6)};

intm;

m=*(*(a+l)+l);

m=m*a[l][1];

printfm);

return0;

A.5B.1C.25D.4

11.若已定义了如下的共用体类型变量x,则x所占用的内存字节数为(C)

(设在16位pc机的环境下)

uniondata

{inti;

charch;

doublef;}x;

A.7B.11C.8D.10

12.设fp为指向某二进制文件的指针,且已经读到此文件末尾,则函数feof(fp)的返回值为

(B).,

A.EOFB.非0值C.OD.NULL

13.位运算(D)

A.是指变量的逻辑运算。B.是指变量的关系运算。C.表明C语言具有高级语言的能力。D.是指二

进制位的运算。

14.如果inta=0x3;intb=0x4;执行运算:x=a"b;则x的结果是(B)

A.0B.7C.4D.3

15.宏定义#definePI3.1416中,定义PI为(A

A.常量B.单精度数C.双精度数D.字符串

二、判断题(每小题1分,共11分)

1.(X)在C程序中,main函数必须位于程序的最前面。

2.(V)一个C源程序可由一个或多个函数组成。

3.(J)在C程序中,每行中只能写一条语句。

4.(V)逻辑运算符两侧运算对象的数据类型可以是任何类型的数据。

5.(X)while^do_while^for循环中的循环体语句都至少被执行一次。

6.(V)只能在循环体内和switch语句体内使用break语句。

7.(V)字符数组中可以存放ASCII字符集中的任何字符

8.(X)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包拈到用

户源文件中,系统会自动去调

9.(X)在函数中,只有当实参和与其对应的形参同名时才共占用存储单元。

10.(V)C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是单向值

传递。

11.(J)在文件包含侦处理命令的使用形式中,当include后面的文件名用""(双引号)

括起时,寻找被包含文件的方式是先在源程序所在目录搜索,再按系统设定的标准方式搜索。

三、分析程序给出运行结果(每题5分,共25分)

1.下面程序段的运行结果是()o

i=l;s=3;

do

{s+=i++;

if(s%7==0)

continue;

else++I;

}while(s<15);

printf("%d",i);

答:8

2.分析下面程序的运行结果。

#include<stdio.h>

main()

{inta=0xl237;

printf("a=%x\n",a);

printf(**%x\nw,(a»8)&~~0<<8));

return0;

)

答案:2

3.给出下列程序的运行结果

^defineN10

ftdefines(x)x*x

ttdefinef(x)(x*x)

mainO

{inti1,i2;

il=lOOO/s(N);

i2=1000/f(N);

printf(,z%cl%d\n”,i1,i2);

)

答案100010

4.设位段的空间分配由右到左,请给出以下程序的运行结果。

structpacked_bit

{unsigneda:2;

unsignedb:3;

unsignedc:4;

intI;

}data;

mainO

{data.a=8;

data.b=2;

printf(u%d\nM,data,a।data,b);

}

答案:2

5.分析下面程序的运行结果。

#include<stdio.h>

intf(inta);

intmain()

{intf(int);

inta=5,i;

for(i=0;i<3;i++)

(

printf(,z%d”,f(a));

)

return0;

)

intf(inta)

{autointb=0;

staticintc=3;

b=b+1;

c=c+1;

return(a+b+c);

)

答案:101112

四、完善程序填空题(每题7分,共14分)

下面程序的功能是在3个字符串中找出最小的,请填空。

#include<stdio.h>

#include<string.h>

mainO

{chars[20],str[3][20];

inti;

for(i=0;i<3;i++)

gets(str[i])

strcpy(s,(strcmp(str[O],str[l])<0?str[0]:str[l]));

if(strcmp(str[2],s)<0)

strcpy(s,str[2]);

printf("%s\n",s);

}

2.用冒泡法对10个整数排序。

#include<stdio.h>//cpplll.c

intmainO

{inta[10];

inti,j,t;

for(i=0;i<10;i++)

(

scanf(飞d",

)

for(j=0;j<9;j++)

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

{

if(a[i]>a[i+l]

)

(

t=a[i];

a[i]=a[i+l];

a[i+l]=t;

)

)

)

五、编程题(每题10分,共20分)

1.请编制程序实现:判断一个数能否同时被4和7整除。

答:算法如下:

#include<stdio.h>

intmainO

{intx;

printf("\n为X输入值");

scanf&x);

if(x%4==0)

{if(x%7==0)

{printf("\nX能被4和7整除:X=");

printf(*%-5d\n*,x);

}

elseprintf(*\nX不能被7整除“);

)

elseprintf(*\nX不能被4整除“);

return0;

)

2.编写一个函数,由实参传来一个字符串,统计此字符串口字母、数字、空格和其他符的个数,

在主函数中输入字符串以及输出上述的结果。

答:算法如下:

#include"stdio.h"

intn=0,m=0,k=0,o=0;//外部变量

voidtest(charstr[]);

main()

(

chara[80];

printfCinputstring:*);

gets(a);

test(a);

printf("\n字母数=<)^数字数=%d空格数=%d其他字符数n,m,k,o);

return0;

)

voidtest(str)

charstr[];

{inti;

for(i=0;str[i]!=>\0*;i++)

{if(str[i]>=,a1&&str[i]<=,z*||str[i]>=*A*&&str[i]<=,Z*)

n++;〃11为字母数

elseif(str[i]>=*O,&&str[i]<=,91)

m++;〃m为数字

elseif(str[i]==,')

k++;〃k为空格

elseo++;〃统计总字符数

)

)

return0;

)

C语言(A3卷)

一、单项选择题(每题2分,共30分)

1.请问:下面这个程序段的输出是什么?(D)

inta=7,b=8,c=9;

if(a<b){a=b;b=c;c=a;}

printf(*a=%db=%dc=%d\n”,a,b,c);

A.a=7b=8c=7B.a=7b=9c=7C.a=8b=9c=7D.a=8b=9c=8

2.C语言对嵌套if语句的规定是:else总是与(D)配对。

A.其之前最近的ifB.第一个ifC.缩进位置相同的ifD.其之前最近且

不带else的if

3.有以下程序段:

intk=0;

while(k=l)k++;

while循环执行的次数是(A)。

A.无限次B.有语法错,不能执行C.一次也不执行D.执行

1次

4.若有语句:

taticcharx[]=*12345*;

staticchary[]={'1','2','3','4','5'};

则下面那一个是正确的描述。(B)

A.x数组和y数组的长度相同。B.x数组长度大于y数组长度。

C.x数组长度小于y数组长度。D.x数组等价于y数组。

5.若有定义:inta[5][6];则下面关于数组a的叙述中正确的是(C)。

A.该数组共有20个元素B.a[0][6]是该数组的一个元素

C.a[O][0]是该数组的一个元素D.a[5][6]是该数组的一个元素

6.对局部变量不正确描述(B)

A.在不同块内可以使用相同的变量名而不会混淆。B.局部变量在任何一个函数内有效。

C.局部变量的初值每调用一次赋一次D.用auto说明的变量为局部变量。

7.凡是函数中未指定存储类别的局部变量,防含的存储类别为(A)o

A.autoB.registerC.staticD.extern

8.在说明语句:int*f();中,标识符f代表的是(A)

A.一个返回值为指针型的函数名B.一个用于指向整型数据的指针变量

C.一个用于指向函数的指针变量D.一个用于指向一维数组的行指针

9.typedef(D)

A.可以定义各种类型名和变量名。B.可以创造新的数据类型。

C.fU#define作用相同。D.只是对已存在的类型增加一个类型名,不能创

造新类型。

10.若fp已正确定义为一个文件指针,dl.dat为二进制文件,为“读”而打开此文件的语句是

(B)。

A.fp=fopen(*dl.dat","r");B.fp=fopen(/,dl.dat*,"rb");C.fp=fopen(*dl.dat","r+");

D.fp=fopenCzdl.dat","w");

11.移位运算符“。”的含义(C)

A.从一个变量移动到另一个变量B.移位运算符“<<"可以适合任意类

型的数据

C.按二进位移位运算,限定为整型数据和字符型数据D.按二进位移位运算,限定为整型数

12.如果inta=0x3;intb=0x2;执行运算:a«=b;则x的结果是(C)

A.0B.1C.11D.48

13.设:intg=2;下列表达式的值,哪一个等于1?(D)

A.~g&gB.g>gC.g"=gD."g&l

14.正确描述文件包含预处理的含义(C)

A.目标文件B.执行文件C.C源文件D.一条包含命令可以包含多个文件

15.对宏定义的不正确描述(B)

A.宏定义是用宏名代替一个字符串。B.ttdefine的作月范围,是整个源文件有效。

C.宏名可以在其它宏定义中引用,可以层层替换D用双引号扩起来的字符串,即使与宏名相同,

也不进行置换。

二、判断题(每小题1分,共11分)

1.(X)若以“a+”方式打开文件时,原有文件内容不被删除,位置指针移到文件开头,可

作重写和读操作。

2.(X)函数rewind的作用是使位置指针指向文件的末尾。

3.(J)用typedef只是将已存在的类型用一-个新的标识符来代去

4.(J)(:语言联合类型变量在程序运行期间只有一个成员驻留在内存中。

5.(V)说明一个结构体变量时,系统分配给它的内存是各成员所需内存量的总和。

6.(V)语句int(*ptr)();的含义是指向函数的指针,该函数返回一个int型数据。

7.(X)C语言允许main函数带形参,形参名只能是argc和argv。

8.(X)预处理指令只能位于C源程序文件的首部。

9.(X)在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变

量,则该变量需要使用的存储类别是extern

10.(V)若用数组名作为函数调用的实参,则传递给形参的是数组的首地址。

11.(V)函数的定义不可以嵌套,但函数的调用可以嵌套。

三、分析程序给出运行结果(每题5分,共25分)

1.以下程序的运行结果是:

#include"stdio.h"

^include“stdlib.h"

structdata

{intx,y;};

voidmain()

{structdata*p;p=(structdata*)malloc(sizeof(structdata));

(*p).x=3;(*p),y=4;

printf(*%d%d\nw,p->x,p->y);

free(p);

)

答案:34

2.分析卜面程序的运行结果。

#include<stdio.h>

main()

{inta=0x9567;

printf(Ma=%x\nw,a);

printf(rt%x\nw,(a»12)&~(~0<<12));

return0;

)

答案:9

3.分析下面程序的运行结果。

#include<stdio.h>(B)

^defineSQR(y)y*y

main()

inta,b=4;

a=SQR(b+l);

printf("a=%d\n”,a);

答案:a=9

4.给出下面程序的运行结果。

niainO

{unsigneda=0361,x,y;

intn=5;

x=a«(16-n);

printf(rtx=%o\nw,x);

y=a»n;

printf(uyl=%o\nM,y);

yl=x;

printf(wy2=%o\nn,y);

)

答;运行结果

x=104000

yl=7

y2=104007

5.给出下面程序的运行结果。

mainO

{structexample

{struct{intx;

inty;

}in;

inta;

intb;

}e;

e.a=l;

e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf(,e.in.x,e.in.y);

)

答:运行结果:2,3

四、完善程序填空题(每题7分,共14分)

1.将一个数组中的值按逆序重新存放,

#include<stdio.h>

voidmain()

{inti,j,m,n=0,temp;

intx[20];

printf("输入需排序的个数%d\n”,n);

scanf("$d”,&n);

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

{scanf("5d,",&x[i]);}

m=(n-l)/2,;

for(i=0;i<=m;i++)

j=n-l-i;

temp=x[i];

x[i]=x[j];

x[j]=temp;

)

)

2.将原文件filel.c的内容读出并显示,同时将其内容写入file2.c文件中。

#include<stdio.h>

mainO

{FILE*fpl,*fp2;

fpl=fopen(*filel.c","r");

fp2=fopen(z,file2.c","[v");

while(!feof(fpl))putchar(getc(fpl));

rewind(fpl);

whi1e(!feof(fpl))putc(getc(fpl),fp2);

fclose(fpl);fclose(fp2);

)

五、编程题(每题10分,共20分)

1.请编制程序实现:输出1900~2000年中是闰年的年份。要求:符合下面2个条件之一的年份

是闰年。闰年的第一条件是:能被4整除、但不能被100整除。第二条件是:能被100整除也能

被400整除。

答:算法程序如下:

#include<stdio.h>

mainO

{intyear,leap=0;/*leap=0:预置为非闰年*/

year=1900;

while(year<2000)

{if(year%4==0)

{if(year%lOO!=0)

leap=l;

)

else

{if((year%400=0)&&(year%100=0))

leap=l;

)

if(leap)

{printf(*%disaleapyear.\n*»year);

leap=0;

)

year++;

)

return0;

)

2.输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本

身。例如,153是一水仙花数,因为153=13+53+33。

答:编制程序如下:

ttinclude<stdio.h>

voidmain()

专升本C语言

一、单选,共30题/每题2.5分/共75.0分:

I、下面这段程序的输出纭果是()

inta=5;intb=3;

if(a>b)

prinlfa);

printfb);

B、53

2、对局部变量不正确描述()

B、局部变量在任何一个函数内有效

3、已知ch是字符型变量:下面不正确的赋值语句是()

A、ch=,a+b';

4、假设int]={l,3.5,7,9,ll,〃ptr;ptr=x;以下那些是对数组元素的正确引用()

D、z,(ptr++)

5、若二维数组a有m歹ij,则在前的元素个数为()

B、i*m+j

6、C语言是由什么组成的()

C、函数

7、若用数组名作为函数调用的实参,传给形参的是()

A、数组的首地址

8、执行inta=5;a*=a+5;后a的值为()

C、50

9、以下能对二维数组a进行正确初始化的语句是()

B、inta[2][4]={{1.2.3),{4.5},{6});

10、执行语句"x句a=3,b=a一)后,x,a,b的值依次为()

B、3.2,3

11、对函数的正确描述()

A、函数定义都是平行的,独立的

12、若fp已正确定义为一个文件指针,dl.dat为二进制文件,为〃读〃而打开此文件的语句是

()

fp=fopen(,,dl.dat","rb");

13、设有单精度变量,其值为13.8。执行语句〃n=(度后,n的值是()

B.1

14、假定inti=3j=4;执行语句:prin(%d,%d,%d\n"i+.);之后,其输出结果为:()

B.7,3,4

15、在C语言中,函数返回值的类型最终取决于()

C、函数定义时在函数首部所说明的函数类型

16、以下有关宏替换的叙述不正确的是()

C、宏名必须用大写字母表示

17、设变量a是整型是实型,i是双精度型则表达式10+'a'+l*f值的数据类型为()

C、double

18、执行语句"for(i=0;++<3;)后,变量i的值为()。

C、4

19、设intx=l,y=l;表达式(!x++lly—)的值是()

B、1

20、若有下列程序段

charx[80];

scanf("%s"x);

printfx)

从键盘上输入字符串"zhangsan〃,则输出结果为()。

D、Zhang

21、若调用一个函数,且此函数中没有return语句,则正确的说法是()

D、返回一个不确定的值

22、要定义一个结构体类型拟包含两个成员,其中成员变量in「o用来存放整型数据,成员变

量in是指向自身结构体的指针。则下面的定义正确的是()

C^structnode{intinfo;structnode*link;J;

23、C语言中对函数的描述正确的是()

A、可以嵌套调用,不可以递归调用

24、以下叙述正确的是()

D、在C程序的每一行只能写一条语句

25、()是构成C语言程序的基本单位。

A、函数

26、已有定义inta=-2;和输出语句:printf("%8x”.A、;以卜.正确的叙述是()

C、%81x不是错误的格式符,其中数字8规定了输出字段的宽度

27、如果inta=0x3;intb=0x4;执行运算:x=a*b;则x的结果是()

A、0

28、以下标识符合法的是()

C、_al23

29、如果输入信息为:1231567则执行语句:scanfC%2d%2d\&x,&y);之后,x,y的值为()

C、x为12,y为34

30、如果inta=0x3;intb=0X2;执行运算:a«=b;则的结果是()

D、11

二、判断,共10题/每题2.5分/共25.0分:

31、在C语言中,逗号既可以作为运算符,也可以作为分隔符。(正确)

32、在C程序中,main函数必须位于程序的最前面。(错误)

33、当从键盘输入数据时,对于整型变量只能输入整型数直,对于实型变量只能输入实型数值。

(错误)

34、一个变量的数据类型被强制转换后,它将保持被强制转换后的数据类型。(错误)

35、在分支结构switch中,case后面跟的一定是变量。(错误)

36、C语言是一种具有某些低级语言特征的高级语言。(正确)

37、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该

变量需要使用的存储类别是extern(错误)

38、若用数组名作为函数调用的实参,则传递给形参的是数组的首地址。(正确)

39、程序中若要使用数学函数应该包含头文件"math,h”。(正确)

40、用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志'\0'。

(正确)

专升本-C语言

一、单选,共30题/每题2.5分/共75.0分:

1、对于int*p;inta□:p=a;的合法运算()

B、++p;相当于a[l]

2、()是构成C语言程序的基本单位。

B、函数

3、一个C程序的入口地比是从()

B、C程序的main函数开始,到main函数结束。

4、以下程序段()

x=-l;

dox=x*x;

while(!x);

B、循环执行一次

5、对函数的正确描述()

B、函数定义都是平行的,独立的

6、设:intg=2;下列表达式的值,哪一个等于1?()

A、

7、以下叙述中错误的是()

C、循环语句嵌套可以是同类型的语句,也可以不同类型

8、各种基本数据类型的存贮空间正确的长度排列为()。

D、char<int<float<double

9、如果inta=0x3;intb=0x2;执行运算:a«=b;则x的结果是()

B、11

10>有下面的程序段chara[3]»b□:"student";a=b;printf("$s”;a);则()

C、编译出错

11、若有语句:staticcharx[]="12345”;staticchary[]={'1','2','3','4','5'};则卜

面那一个是正确的描述。。

C、x数组长度大于v数组长度

12、下列语句不具有赋值功能的是()

A^a+b

13、typcdef()

D、只是对已存在的类型增加一个类型名,不能创造新类型

14、下面这段程序的输出结果是()

inta=5;intb=3;

if(a>b)

printf("Sd",a);

printfb);

B、35

15、语句int*p;说明了()

D、p是指向一维数组的指针

16、在C语言程序中,表达式5%2的结果是()

C、1

17、在C语言中,函数返回值的类型最终取决于()

B、函数定义时在函数首皆所说明的函数类型

18、若有说明a[明[4];则数组a中的各元素()

D、不能得到确定的初始值

19、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()

C、auto

20、以下叙述中错误的是()

A、循环语句嵌套可以是同类型的语句,也可以不同类型

21、移位运算符〃。〃的含义()。

C、按二进位移位运算,限定为整型数据和字符型数据

22、对于for(表达式1;表达式2;表达式3)语句的正确描述()

C、三个表达式均不能省略

23、在C语言中,函数返回值的类型最终取决于()

C、函数定义时在函数首的所说明的函数类型

24、设有单精度变量f,其值为13.8。执行语句塞=((int)f)%3;〃后,n的值是()

C、1

25、在〃文件包含〃预处理语句的使用形式中,当include后面的文件名用〃〃括起时,寻找被

包含文件的方式是O

D、先在源程序所在H录搜索,再按照系统设定的标准方式搜索

26、若有代数式3ae/bc,则不正确的C语言表达式是()

B、3*a*e/b*c

27、若调用一个函数,且此函数中没有return语句,则正确的说法是()

A、返回一个不确定的值

28、有下面的程序段chara[3],b[]="student”;a=b;printfa);则()

B-.编译出错

29、若运行时给变量输入12,则以下程序的运行结果是()

mainO

{intx,y;

scanf(线d",&x);

y=x>12?x+10:x-12;

prinlf("%dn",y);

B.O

30、下面程序段中,for循环的执行次数()

Char*s="\ta\018bc”;

for(:*s!=,\0*;s++)printf("*");

C、6

二、判断,共10题/每题2.5分/共25.0分:

31>continue语句和break语句作用完全相同(错误)

32、一个C源程序可由一个或多个函数组成。(正确)

33、当从键盘输入数据时,对于整型变显只能输入整型数值,对于实型变量只能输入实型数值。

(错误)

34、枚举类型中的元素都具有一个整型值。(正确)

35、for()这写书写for循环是合法的,即for三个表达式都是可以省略的。(正确)

36、描述算法可以用自然语言、传统流程图、N-S流程图来描述。(错误)

37、程序中若要使用数学函数应该包含头文件"math』”。(正确)

38、在函数内定义的变量只在本函数范围内有效。(正确)

39、两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数。(正确)

40、函数的实参传递到形参有两种方式值传递和地址传递。(正确)

专科-c语言

一、单选,共30题/每题2.5分/共75.0分:

3、以下关于运算符优先顺序的描述中正确的是()

C、赋值运算符〈逻辑运算符〈关系运算符〈算术运算符

4、C语言中,注释可以出现在源程序中空格可以出现的任何位置。(正确)

5、一个C语言程序是由•)

D、若干函数组成

12、sizeof(float)是()

C、一个整型表达式

20、在C语言中,char型数据在内存中的存储形式是()。

C、ASCII码

22、有以卜程序段typedefstructnode(intdata;structnode*next]*N0DE;NODEp;以

下叙述中正确的是()

D、p是指向structnode结构变量的指针

25、已有说明floatf=3.14,*p若让p指向f,则正确的赋值语句是()

C、p=&f

30、建立函数的目的之一以下正确的说法是()

C、提高程序的可读性

一、判断,共10题/每题2.5分/共25.0分:

31、输入操作称为写操作:将输入流中的信息存到内存时,使用写函数。(错误)

32、变量的两个值:本身值和地址值都是可以改变的。(错误)

33、函数形参的存储单元是动态分配的。(正确)

34、在语句的三种形式中,如果要想在满足条件时执行一组(多个语句,则必须把这一组语句

用0括起来组成一个复合语句。(正确)

35、C语言中,注释可以出现在源程序的任何位置。(正确)

36、浮点型常量的指数表示中,e是可以省略的。(错误)

37、如果x〉y或者治Wa(正确)

39、C语言中,变量名用大小写是等价的。(错误)

40、联合类型是同一个存储空间,可以被几个不同数据类型的分量成员共享使用。(正确)

专科・・C语言(Al卷)

一、单项选择题(每题2分,共30分)

I.以下描述正确的是(C)

A.goto语句只能用于退缩出多层循环。B.switch语句中不能出现continue语句。

C.只能用coniinue语句中来终止本次循环。D.在循环语句中break语句不独立出现。

2.一个C程序的执行是从(A)

A.C程序的main函数开始,到main函数结束。B.本程序的第一个函数开始,到本程序最后

一个函数结束.

C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序的第一个函数开始,到

本程序main函数结束。

3.C语言中,要求运算数必须都是整数的运算符是(C)o

A.*B.-C.%D.+

4.假定inti=3j=4;执行语句:printf("%d,%d,%d\n”,i+++j,i,j);之后,其输出结果为:(C)

A.7,4,4B.8,4,4C.7,3,4D.7,3,5

5.对break语句的正确描述。(A)

A.break语句在while语句中,立即终止执行while语句。B.break语句不能用于循环语句之

外的语句。

C.break语句与continue语句功能相同。D.break语句可以带参数,也可以

不带。

6.在C语言中,下面那一个不是正确的概念(A

A.所有循环语句都要求至少要执行一次循环体。B.goto和if语句能构成循环语句。

C.循环过程只能包含,不能交叉。D.循环体可以是一条语句。

7.以下对二维数组a的正确说明是(C)

A.inta[3][];B.floata(3,4);C.inta[3][4]D.floata(3,)(4);

8.对函数的正确描述(C)

A.在C语言中可以嵌套定义函数。B.自定义困数和调用困数可以不在一个源文件中。

C.函数定义都是平行的,独立的。D.不能嵌套调用函数。

9.若用数组名作为函数调用的实参,传给形参的是(A)

A.数组的首地址B.数组的第一个元素值C.数组的全部元素值D.数组中

元素的个数

10.对于int*p;inta[];p=a;的合法运算(C)

A.a++;B.p=a;p++;相当于a++;C.++p;相当于a[i];D.若p中的地址为100则p++;

运算后,则其值为100

II.假设intx|]={1,3,5,7,9,11},*ptr;ptr=x;以下那些是对数组元素的正确引用(D)

A.*(ptr—)B.x[6]C.*(—pir)D.*(ptr++)

12.执行以下语句后的结果为(A)

enumweekday{sun.nion=3,tuc,wcd,thu};

enuniweekdayworkday;

workday=wed;

printf("%d\n",workday);

A.5B.3C.4D.编译出错

13.要定义一个结构体类型拟包含两个成员,其中成员变量info用来存放整型数据,成员变量

link是指向自身结构体的指针。则下面的定义正确的是(D)o

A.structnode{intinfo;structnodelink;};B.structn(xle{in(info;node*link;};

C.structnode{intinfo;struct*link;|;D.structn(xle{intinfo;structnode*link;}:

14.以下与函数fseck(fp.OL,SEEK_SET)有相同作用的是(D)。

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

15.局部变量的作用域(A)

A.在定义的块内有效。B.在函数外也有效。C.在本文件内有效。D.在

所有文件内有效。

二、判断题(每题1分,共10分)

(X)1.break和continue都可以用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论