C语言上机试题及答案1.docx

上传人:b****5 文档编号:5150827 上传时间:2022-12-13 格式:DOCX 页数:18 大小:20.29KB
下载 相关 举报
C语言上机试题及答案1.docx_第1页
第1页 / 共18页
C语言上机试题及答案1.docx_第2页
第2页 / 共18页
C语言上机试题及答案1.docx_第3页
第3页 / 共18页
C语言上机试题及答案1.docx_第4页
第4页 / 共18页
C语言上机试题及答案1.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言上机试题及答案1.docx

《C语言上机试题及答案1.docx》由会员分享,可在线阅读,更多相关《C语言上机试题及答案1.docx(18页珍藏版)》请在冰豆网上搜索。

C语言上机试题及答案1.docx

C语言上机试题及答案1

在C语言中,形参的缺省存储类是(C)。

A、extern

B、register

C、auto

D、static

下列标识符中,不合法的C语言用户自定义标识符是(C)。

A、printf

B、sin

C、enum

D、_

以下不正确的if语句形式是(D)。

A、if(x

B、if(x>y&&x!

=y);

C、if(x==y)x+=y;

D、if(x!

=y)scanf("%d",&x)elsescanf("%d",&y);

以下选项中正确的整型常量是C

A、4/5

B、5

C、-10

D、1.000

下列变量说明语句中,正确的是(B)。

A、chara;b;c;

B、intx,z;

C、char:

abc;

D、intx;z;

以下程序的输出结果是B

main()

{intk=4,m=1,p;

p=func(k,m);

printf(“%d,”,p);

p=func(k,m);

printf(“%d\n”,p);

}

func(inta,intb)

{staticintm,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

A、8,20

B、8,17

C、8,8

D、8,16

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

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

B、它们的运算对象可以是任何变量和常量

C、它们的运算对象可以是char型变量、int型变量和float型变量

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

下列字符数组长度为5的是C

A、charc[10]={'h','a','b','c','d'};

B、charb[]={'h','a','b','c','d','\0'};

C、chara[]={'h','a','b','c','d'};

D、chard[6]={'h','a','b','c','\0'};

以下程序运行后的输出结果是C

#include

main()

{FILE*fp;inti,k=0,n=0;

fp=fopen(“d1.dat”,“w”);

for(i=1;i<4;i++)fprintf(fp,“%d”,i);

fclose(fp);

fp=fopen(“d1.dat”,“r”);

fscanf(fp,“%d%d”,&k,&n);printf(“%d%d\n”,k,n);

fclose(fp);

}

A、123

B、00

C、1230

D、12

定义语句int*swap();指的是D

A、以上说法均不对

B、swap是一个返回整型值的函数

C、swap是一个指向函数的指针

D、swap是一个返回指向整型值指针的函数

以下选项中正确的实型常量是C

A、0.03x102

B、32

C、3.1415

D、0

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

main()

{intn;

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

{

if(n%3==0)continue;

printf("%d",n);

}

}

A、12

B、12457810

C、1234567890

D、369

设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的

数据类型为(B)。

A、不确定

B、double

C、int

D、float

下列选项中正确的语句组是(B)。

A、chars[8];s={"Beijing"};

B、char*s;s="Beijing";

C、chars[8];s="Beijing";

D、char*s;s={"Beijing"};

当定义一个结构体变量时,系统分配给它的内存是(D)。

A、结构中最后一个成员所需内存量

B、结构中第一个成员所需内存量

C、成员中占内存量最大者所需的容量

D、各成员所需内存量的总和

若有说明:

int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是(B)。

A、p1=&m;*p2=*p1;

B、p1=&m;p2=p1;

C、p1=&m;p2=&p1

D、p1=&m;p2=&n;*p1=*p2;

已定义两个字符数组a,b,则以下正确的输入格式B

A、scanf("%s%s",&a,&b);

B、scanf("%s%s",a,b);

C、gets("a"),gets("b");

D、get(a,b);

若有定义:

inta=7;floatx=2.5,y=4.7;

则表达式x+a%3*(int)(x+y)%2/4的值是(D)。

A、3.500000

B、0.000000

C、2.750000

D、2.500000

结构化程序设计所规定的三种基本控制结构是(D)。

A、树形、网形、环形

B、输入、处理、输出

C、主程序、子程序、函数

D、顺序、选择、循环

在下列程序段中,枚举变量c1,c2的值依次是(A)。

enumcolor{red,yellow,blue=4,green,white}c1,c2;

c1=yellow;c2=white;

printf("%d,%d\n",c1,c2);

A、1,6

B、1,4

C、2,6

D、2,5

已知year为整型变量,不能使表达式(year%4==0&&year%100!

=0)

||year%400==0的值为“真”的数据是(A)。

A、1990

B、1996

C、1992

D、2000

以下正确的说法是(A)。

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

B、系统根本不允许用户重新定义标准库函数

C、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调

D、用户若需调用标准库函数,调用前必须重新定义

设a=12,且a定义为整型变量。

执行语句a+=a-=a*=a;后a的值为(C)。

A、132

B、12

C、0

D、144

有以下宏定义B

#definek2

#defineX(k)((K+1)*k)

当C程序中的语句y=2*(K+X(5));被执行后,

A、y中的值为65

B、语句报错

C、y中的值为34

D、y中的值不确定

对于void类型函数,调用时不可作为(A)。

A、表达式

B、循环体里的语句

C、自定义函数体中的语句

D、if语句的成分语句

下面程序的运行结果是D

main()

{charch[7]=“65ab21”;

inti,s=0;

for(i=0;ch[i]>=’0’&&ch[i]<=’9’;i+=2)

s=s*10+ch[i]-‘0’;

printf(“%d\n”,s);

}

A、62

B、6521

C、12ba56

D、6

对于建立函数的目的,正确的说法是D

A、提高程序的执行效率

B、减少程序的篇幅

C、减少程序文件所占的内存

D、提高程序的可读性

以下程序的输出结果是C

#include

main()

{

inti;

for(i=1;i<5;i++)

{

if(i%2)

putchar(‘<’);

else

continue;

putchar(‘>’);

}

putchar(‘#’);

}

A、<><><>#

B、><><#

C、<><>#

D、><><><#

下面判断正确的是(D)。

A、char*a="china";等价于char*a;*a="china";

B、charstr[10]={"china"};等价于charstr[10];str[]={"china"};

C、charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";

D、char*s="china";等价于char*s;s="china";

charc[]="VeryGood";是一个合法的为字符串数组赋值的语句。

用fopen("file","r+");打开的文件"file"可以进行修改。

C程序中有调用关系的所有函数必须放在同一个源程序文件中。

char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。

若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。

C语言中只能逐个引用数组元素而不能一次引用整个数组。

若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。

C语言的函数可以嵌套定义.错

如果函数值的类型和return语句中表达式的值不一致,则以

函数类型为准。

x*=y+8等价于x=x*(y+8)。

【程序设计】

--------------------------------------------------

功能:

在键盘上输入一个3行3列矩阵的各个元素的值(值

为整数),然后输出矩阵第一行与第三行元素之和,

并在fun()函数中输出。

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

#include"stdio.h"

intfun(inta[3][3])

{

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

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

}

voidTestFunc();

main()

{

inti,j,s,a[3][3];

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

{

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

scanf("%d",&a[i][j]);

}

s=fun(a);

printf("Sum=%d\n",s);

TestFunc();

}

答案

intsum;

inti,j;

sum=0;

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

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

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

【程序设计】

--------------------------------------------------

功能:

从字符串中删除指定的字符。

同一字母的大、小写

按不同字符处理。

例如:

若程序执行时输入字符串为:

turbocandborlandc++

从键盘上输入字符:

n,则输出后变为:

turbocadbo

rladc++,如果输入的字符在字符串中不存在,则字

符串照原样输出。

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

#include

voidbky();

intfun(chars[],intc)

{

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

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

}

main()

{

staticcharstr[]="turbocandborlandc++";

charch;

printf("原始字符串:

%s\n",str);

printf("输入一个字符:

");

scanf("%c",&ch);

fun(str,ch);

printf("str[]=%s\n",str);

bky();

}

voidbky()

{

 

voidTestFunc()

{

FILE*IN,*OUT;

intm;

intn;

inti[3][3];

into;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFileError");

}

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

{

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

fscanf(IN,"%d",&i[m][n]);

}

o=fun(i);

{

fprintf(OUT,"%d\n",o);

}

fclose(IN);

fclose(OUT);

}

答案

char*q=s;

for(;*q;q++)

if(*q!

=c)*(s++)=*q;

*s=0;

【程序改错】

--------------------------------------------------------

功能:

编写函数fun生成一个对角线元素为5,上三角元素为0,

下三角元素为1的3*3的二维数组。

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

#include"stdio.h"

main()

{

inta[3][3],i,j;

fun(a);

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

{

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

printf("%d",a[i][j]);

printf("\n");

}

}

fun(intarr[][3])

{

/**********ERROR**********/

inti,j

/**********ERROR**********/

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

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

/**********ERROR**********/

if(i=j)

arr[i][j]=5;

elseif(j>i)

arr[i][j]=0;

else

arr[i][j]=1;

}

答案

inti,j;for(i=0;i<3;i++)【参考答案】if(i==j)

【程序改错】

--------------------------------------------------------

功能:

求出N×M整型数组的最小元素及其所在的行坐标及列坐标

(如果最小元素不唯一,选择位置在最前面的一个)。

例如:

输入的数组为:

923

4156

1219

10112

求出的最小数为1,行坐标为2,列坐标为1。

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

#defineN4

#defineM3

#include

intRow,Col;

main()

{

inta[N][M],i,j,min,row,col;

printf("inputaarray:

");

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

{

for(j=0;j

printf("%d",a[i][j]);

printf("\n");

}

min=fun(a);

printf("max=%d,row=%d,col=%d",min,Row,Col);

}

intfun(intarray[N][M])

{

intmin,i,j;

min=array[0][0];

Row=0;

Col=0;

for(i=0;i

{

/**********ERROR**********/

for(j=i;j

/**********ERROR**********/

if(min

{

min=array[i][j];

Row=i;

/**********ERROR**********/

Col=i;

}

}

return(min);

}

答案

for(j=0;jarray[i][j])Col=j;

【程序填空】

---------------------------------------------------------

功能:

已定义一个含有30个元素的数组s,函数fun1的功能是按

顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序

每五个元素求一个平均值,并将该值存放在数组w中。

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

floats[30],w[6];

fun1(floats[])

{

intk,i;

for(k=2,i=0;i<30;i++)

{

/**********FILL**********/

_____;

k+=2;

}

}

fun2(floats[],floatw[])

{

floatsum=0.0;

intk,i;

for(k=0,i=0;i<30;i++)

{

sum+=s[i];

/**********FILL**********/

_____;

{

w[k]=sum/5;

/**********FILL**********/

_____;

k++;

}

}

}

main()

{

inti;

fun1(s);

/**********FILL**********/

_____;

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

{

if(i%5==0)printf("\n");

printf("%8.2f",s[i]);

}

printf("\n");

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

printf("%8.2f",w[i]);

}

1.s[i]=ks[i]=(i+1)*22,if((i+1)%5==0)if((i+1)/5*5==i+1)3,sum=0sum=0.04fun2(s,w)

 

【程序填空】

---------------------------------------------------------

题目:

<<<题干内容>>>

给定程序中,函数fun的功能是:

统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

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

#include

#include

#defineN8

typedefstructlist

{intdata;

structlist*next;

}SLIST;

SLIST*creatlist(int*a);

voidoutlist(SLIST*);

voidfun(SLIST*h,int*n)

{SLIST*p;

/**********FILL**********/

_____=0;

p=h->next;

while(p)

{(*n)++;

/**********FILL**********/

p=p->_____;

}

}

main()

{SLIST*head;

inta[N]={12,87,45,32,91,16,20,48},num;

head=creatlist(a);outlist(head);

/**********FILL**********/

fun(_____,&num);

printf("\nnumber=%d\n",num);

}

SLIST*creatlist(inta[])

{SLIST*h,*p,*q;inti;

h=p=(SLIST*)malloc(sizeof(SLIST));

for(i=0;i

{q=(SLIST*)malloc(sizeof(SLIST));

q->data=a[i];p->next=q;p=q;

}

p->next=0;

returnh;

}

voidoutlist(SLIST*h)

{SLIST*p;

p=h->next;

if(p==NULL)printf("ThelistisNULL!

\n");

else

{printf("\nHead");

do

{printf("->%d",p->data);p=p->next;}

while(p!

=NULL);

printf("->End\n");

}

}

1,(*n)*n2.next3head

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1