2017c语言考核册答案,2017年最新C语言考题带答案

2017年最新C语言考题带答案

A.3839

B.3938

C.380039

D.390038

(42)有以下程序

#include

main()

{ int a,b,c=246;

a=c/100%9;

b=(-1)&&(-1);

printf("%d,%d\n",a,

B.;

}

输出结果是

A.2,1

B.3,2

C.4,3

D.2,-1

(43)设有如下定义:

int (*ptr)*();

则以下叙述中正确的是

A.ptr是指向一维组数的指针变量

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

(44)有以下程序

#include

struct stu

{ int num;

char name[10];

int age;

};

void fun(struct stu *p)

{ printf("%s\n",(*p).name); }

main()

{

struct stu students[3]={ {9801,"Zhang",20},

{9802,"Wang",19},

{9803,"Zhao",18} };

fun(students+2);

}

输出结果是

A.Zhang

B.Zhao

C.Wang

D.18(45)设有以下说明和定义:

typedef union

{ long i; int k[5]; char c; }DATE;

struct date

{ int cat; DATE cow; double dog; } too;

DATE max;

则下列语句的执行结果是

printf ("%d",sizeof (struct date )+sizeof(max));

A.26

B.30

C.18

D.8

(46)有以下程序

main()

{ char a[]="programming", b[]="language";

char *p1,*p2;

int i;

p1=a; p2=b;

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

if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));

}

输出结果是

A.gm

B.rg

C.or

D.ga

(47)有以下程序

viod fun (int a,int b,int

C.

{ a=456; b=567; c=678;}

main()

{ int x=10, y=20,z=30;

fun (x,y,z);

printf("%d,/%d\n",c,

D.;

}

输出结果是

A.30,20,10

B.10,20,30

C.456,567,678

D.678,567,456

(48)有以下程序

int fun(int x,int y,int *cp,int *dp)

{ *cp=x+y; *dp=x-y; }

main()

{ int a, b, c, d;

a=30; b=50;

fun(a,b,&c,&

D.;

printf("%d,%d\n", c,

D.;

}

输出结果是

A.50,30

B.30,J50

C.80,-20

D.80,20

(49)有以下程序

main()

{ int i, j;

for(j=10;j<11;j++)

{ for(i=9;i=j-1)printf("%d",j);

}

}

输出结果是

A.11

B.10

C.9

D.10 11

(50)有以下程序

#include "atdio.h"

int abc(int u,intv);

main ()

{ int a=24,b=16,c;

c=abc(a,

B.;

printf('%d\n",

C.;

}

nt abc(int u,int v)

{ int w;

while(v)

{ w=u%v; u=v; v=w }

return u;

}

输出结果是

A.6

B.7

C.8

D.9 二、填空题(每空2分,共40分)

请将每空的正确答案写在答题卡【1】-【20】序号的横线上,答在试卷上不得分.

(1) 自动批自理文件名为【1】 。

(2) DOS命令分为内部命令与外部命令,COMP命令属于【2】命令。

(3) 设当前为C盘,现要用一条DOS命令在打印机上输出A盘当前目录下所有扩展名为.DAT的文件内容。这一条DOS命令应为【3】 。

(4) 要将当前盘当前目录下的子目录XYZ中所有扩展名为.BAK 的文件名改成扩展名为.FOR,应使用的DOS命令为【4】 。

(5) 设DOS外部命令文件所在的路径均已用PATH命令打通。现要将当前盘当前目录下的文件WST.TXT设置为只读属性,应使用的DOS命令为【5】 。

(6) 设x和y均为int型变量,且x=1,y=2,则以下表达式的值为【6】 。

1.0+x/y

(7) 设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【7】 。

for(i=0,j=10;i<=j;i++,j--)

k=i+j;

(8) 设有以下定义的语句:

int a[3][2]={10,20,30,40,50,60}, (*p)[2];

p=a;

则 *(*(p+2)+1)值为【8】 。

(9) 以下程序的输出结果是【9】 。

#include

int fun(int x,int y)

{ static int m=0,i=2;

i+=m+1;

m=i+x+y;

return m

}

main()

{ int j=4,m=1,k;

k=fun(j,m); printf("%d,",k);

k=fun(j,m); printf("%d\n",k);

}

(10) 函数fun的功能是:使一个字符串按逆序存放,请填空

void fun (char str[])

{ char m; int i,j;

for(i=0,j=strlen(str);i

{ m=str[i];

str[i]=【11】;

str[j-1]=m;

}

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

}

(11) 以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空。

#include"ctype.h"

#include"stdio.h"

main()

{ char str[81],*sptr;

int i;

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

{ str[i]=getchar();

if(str[i]=='\n') break;

}

str[i]=【12】;

sptr=str;

while(*sptr) putchar(*sptr【13】);

}

(12) 以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。

#include

main()

{ char str[100],str2[100],c;

int i,s;

printf("\n input string 1:\n"); gest(str1);

printf("\n input string 2:\n"); gest(str2);

i=0;

while((strl[i]==str2[i]&&(str1[i]!=【14】))

i++;

s=【15】;

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

}(13) 以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。请填空。

#include

main()

{ FILE *fp;

char str[100]; int i=0;

if((fp=fopen("text.txt",【16】))==NULL)

{ printf("can't open this file.\n");exit(0);}

printf("input astring:\n"); gest(str);

while (str[i])

{ if(str[i]>='a'&&str[i]<='z')

str[i]=【17】;

fputc(str[i],fp);

i++;

}

fclose(fp);

fp=fopen("test.txt",【18】);

fgets(str,100,fp);

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

fclose(fp);

}

(14) 以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空。

#include.

main()

{ char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C'

,'D','E','F'};

int c[64],d,i=0,base;

long n;

printf("enter a number:\n"); scanf("%ld",&n);

printf("enter new base:\n"); scanf("%d",&base);

do

{ c[i]=【19】;

i++; n=n/base;

} while(n!=0);

printf("transmite new base:\n");

for(--i;i>=0;--i)

{ d=c[i];

printf("%c",b【20】;

}

}

参考答案

一、选择题((1)-(40)题每题1分;(41)-(50)题每题2分)

(1)B (2)B (3)D (4)D (5)B (6)A (7)B (8)C (9)D (10)A

(11)D (12)C (13)A (14)B (15)D (16)C (17)B (18)A (19)A (20)A

(21)C (22)D (23)A (24)D (25)B (26)C (27)C (28)B (29)C (30)C

(31)D (32)D (33)B (34)C (35)B (36)D (37)B (38)A (39)D (40)D

(41)A (42)A (43)C (44)B (45)B (46)D (47)A (48)C (49)B (50)C

二、填空题(每空2分,共4分)

(1)至(5)题中所有字母都允许大,小写或大小写混合

(1) 【1】AUTOEXEC.BAT

(2) 【2】外部(答 外部命令不扣分)

(3) 【3】COPY A:*.DAT PRN

(在 COPY 后面与A:*.DAT后面都至少要有一个空格)

(4) 【4】RENXYZ\*.BAK *.FOR 或RENAME XYZ\*.BAK*.FOR

(在REN 或RENAME 后面与XYZ\*.BAK 后面都至少要有一个空格)

(5) 【5】ATTRIB+R WST.TXT

(在ATTRIB 后面与+R后面都至少有一个空格)或ATTRIB WST.TXT+R(在ATTRIB后面与WST.TXT后面都至少要有一个空格)

(6) 【6】1.0或1

(7) 【7】10

(8) 【8】60

(9) 【9】8,17

(10) 【10】 strlen(str )/2或strlen(str)/2.0或0.5*strlen(str)或j或j-1

【11】 str[j-1]或*(str+j-1)

(11) 【12】 '\0' 或0

【13】 ++

(12) 【14】 '\0'或0

【15】 strl[i]-str2[i]

(13) 【16】 "w"或"w+"或"wt"或"w+t"或"""wt+"

【17】 str[i]-32 或str[i]-('a'-'A'或str[i]-'a'+'A'

【18】 "r"或"r+"或"r+t"或"rt+"

(14) 【19】 nºse

【20】 [d]

【2017年最新C语言考题带答案】相关文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值