C语言各章节单元测试题及答案——字符串

C语言各章节单元测试题及答案——字符串
C语言各章节单元测试题及答案——字符串

第7章字符串

7.1 典型考试题剖析

7.1.1 选择题:

【例1】若有以下定义:char s[20]="progrmming",*ps=s;则不能代表字符o的表达式是_______。

A) ps+2 B) s[2] C) ps[2] D) ps+=2,*ps

?考点:指向字符串的指针

?分析:ps是一个指针,加上一个整型数据后仍然是一个指针,ps+2表

示的是'o'的地址,而不是字符o

?答案:A

【例2】以下选项中,不能正确赋值的是________

A) char s1[10];s1=="Ctest";

B) char s2[ ]={'C','t','e','s','t'};

C) char s3[20]="Ctest";

D) char *s4="Ctest\n";

?考点:本例考查字符数组和字符串的初始化方法

?分析:注意A选项的错误是非常典型的错误,错误之处就在于,数组名

是一个地址常量,给常量赋值是不合语法的,所以给数组名赋值是非法

的操作。选项B是一个合法的字符数组初始化形式,但注意s2不构成字

符串,因为数组s2中没有字符串结束符。

?答案:A

【例3】下列描述中不正确的是__________

A) 字符型数组中可以存放字符串

B) 可以对字符型数组进行整体输入、输出

C) 可以对整型数组进行整体输入、输出

D) 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值

?考点:本例考查字符数组和字符串的基本概念。

?分析:字符型数组中可以存放字符串,所以A是正确的。如果字符型数

组中存放的是字符串,则可以对其进行整体输入输出,所以B也是正确

的。但除了构成字符串的字符数组以外,其他数组是不能进行整体输入、

输出的,所以C错误。对字符型数组不能用“=”整体赋值,char

s[ ]=”Hello”;这种形式称为“初始化”而不叫赋值语句。

?答案:C

【例4】对于以下字符串,说明表达式strlen(s)的值。

1.char s[10]={‘a’,’\0’,’b’,’c’,’d’,’\0’};_______

A) 10 B) 1 C) 6 D) 4

2.char s[ ]=”\\141\141abc\t”;

A) 9 B) 12 C) 13 D) 14

3.char *s=”\x69\082\n”;_________

A) 3 B) 5 C) 1 D) 字符串中有非法字符

?考点:本例考查strlen函数及字符串结束符和转义字符的用法。

?分析:因为字符串遇到第一个’\0’即终止,不管第一个’\0’后面还

有多少字符,都认为字符串已经终止,所以第一题中的串长为1(注意

串长不包括’\0’)。因为转义字符作为一个字符处理,所以第二题

中’\\’是一个字符,’\141’是一个字符,’\t’是一个字符,所以

串长为9。第三题的第一个字符是十六进制转义字符,’\082’容易被

误认为是八进制转义字符,但是注意,8超过了八进制的范围,所以这

是三个字符,分别为’\0’,’8’,’2’,而字符串到’\0’终止,

所以串长为1。

?答案:1.B 2.A 3.C

【例5】以下程序的输出结果是__________

#include

#include

void main()

{

char st[20]="hello\0\t\'\\";

printf("%d,%d\n",strlen(st),sizeof(st));

}

A) 9,9 B) 5,20 C) 13,20 D) 20,20

?考点:本例考查strlen函数与sizeof的区别。

?分析: strlen函数是字符串处理函数,它只统计串长,且不包括’\0’,

sizeof求出的是整个数组的长度,所以两者是不同的。

?答案:B

【例6】以下程序的输出结果是_________

#include

#include

void main()

{

char *p1,*p2,str[50]="ABCDEFG";

p1="abcd";

p2="efgh";

strcpy(str+1,p2+1);

strcpy(str+3,p1+3);

printf("%s",str);

}

A) AfghdEFG B) Abfhd C) Afhgd D) Afgd

?考点:本例考查字符串拷贝函数的使用

?分析:第一次拷贝用”fgh”取代了”BCDEFG”,拷贝结束后字符串str

为”Afgh”,第二次拷贝用”d”取代了”h”,拷贝结束后字符串str

为”Afgd”

?答案:D

【例7】定义如下数组s:char s[51];准备将字符串”Happy new year”记录下来,_______是错误的输入语句

A) gets(s+2);

B) scanf(“%20s”,s);

C) for(i=0;i<15;i++) s[i]=get char( ); s[i]=’\0’;

D) while((c=getchar())!=’\n’) s[i++]=c; s[i]=’\0’;

?考点:本例考查的是字符串的输入。

?分析:字符串可以使用scanf函数与%s进行整体格式输入,也可以使

用gets函数整体输入,还可以逐个字符输入。注意使用%s格式输入时

遇到空格或回车符都终止输入,所以选项B不能够完整输入,而是只记

录了”Happy”。选项C和D采用的是逐个字符输入的方式,这时,接收

的字符串不会自动添加’\0’,所以最后要添加一个’\0’才能构成字

符串。

?答案:B

【例8】有以下程序

#include

#include

void main()

{

char *p,*q;

p=(char*)malloc(sizeof(char)*20); q=p;

scanf("%s%s",p,q); printf("%s%s\n",p,q);

}

若从键盘输入:abc def<回车>,则输出结果是:

A) def def B) abc def C) abc d

D) d d

?考点:本例考查字符串的输入

?分析:指针p、q通过赋值后,同时指向长度为20字节的动态存储区域,

所以在语句scanf(“%s%s”,p,q);中,第二次读入的def覆盖掉第一次

读入的abc。p、q同时指向字符串def。所以输出两个def。

?答案:A

【例9】有以下程序

#include

void main()

{

char str[]="xyz",*ps=str;

while(*ps) ps++;

for(ps--;ps-str>=0;ps--) puts(ps);

}

执行后的输出结果是

A) yz B) z C) z D) x

xyz yz yz xy

xyz xyz

?考点:指针指向字符串的操作、字符串输出

?分析:指针ps指向存放字符串的数组str,循环while(*ps)ps++;使指

针ps指向字符串结束符,第二个循环首先使ps--让ps指向’z’然后

输出ps所指的字符串,即”z”,接着指针ps向前挪动,直到ps-str==0,

即ps指向str的首地址为止,每挪动一次都输出当前ps所指的字符串,所以依次输出”z”、”yz”、”xyz”。

?答案:C

【例10】有如下程序

#include

void main()

{

char ch[2][5]={"6937","8254"},*p[2];

int i,j,s=0;

for(i=0;i<2;i++) p[i]=ch[i];

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

for(j=0;p[i][j]>'\0';j+=2)

s=10*s+p[i][j]-'0';

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

}

该程序的输出结果是_______。

A) 69825 B) 63825 C) 6385 D) 693825

?考点:用指针数组中的指针指向字符串数组中的字符串的操作

?分析:指针p[0]指向“6937”,指针p[1]指向”8254”。注意到两重

for循环中的里层循环的步长为2,所以四次取出的p[i][j]分别

为’6’、’3’、’8’、’5’,然后通过p[i][j]-‘0’使字符转换为数字,最后通过s=10*s+p[i][j]-‘0’;把这四个数转换为一个4位数

?答案:C

【例11】语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是______。

A) a\bre\'hi\'y\\\bou B) a\bre\'hi\'y\bou

C) re'hi'you D) abre'hi'y\bou

(说明:'\b'是退格符)

?考点:转义字符的使用

?分析:观察这个字符串发现,第一个字符是’a’,第二个字符’\b’

正好是退格,所以第三个字符’r’覆盖掉第一个字符’a’,依此类推,本字符串中共有两个退格符,所有有两个字符因被覆盖掉而未输出。注意’\’’是转义字符“单撇号”,’\\’是转义字符\。

?答案:C

【例12】以下程序运行后,输出结果是_______。

A) 1234567 B) 7654321 C) 1711717 D) 7177171

#include

#include

void fun(char *w,int n)

{

char t,*s1,*s2;

s1=w; s2=w+n-1;

while(s1

{

t=*s1++;

*s1=*s2--;

*s2=t;

}

}

void main()

{

char *p;

p="1234567";

fun(p,strlen(p));

puts(p);

}

?考点:指针指向字符串的处理

?分析:此题属于比较繁琐的的题目。注意指针s1和s2分别指向字符串

p的开头字符和末尾字符,此题繁琐的地方在于while循环中的三次赋

值。首先把指针s1所指的字符赋给t,然后s1向后挪一个单位,再把

s2所指的字符赋给s1所指的单元(注意这个时候s1已经指向第二个字

符了),接着s2向前挪一个单位,把t的值赋给s2所指的单元(此时

s2已经指向倒数第二个字符了)。依此类推,注意两个指针的指向是随

时变化的。

?答案:C

【例13】以下程序运行后,如果从键盘上输入:

book <回车>

book <空格><回车>

则输出的结果是_______。

A) *8 B) #9 C) #6 D) *9

#include

#include

void main()

{

char a1[80],a2[80],*s1=a1, *s2=a2;

gets(s1); gets(s2);

if(! strcmp(s1,s2)) printf("*");

else printf("#");

printf("%d\n",strlen(strcat(s1,s2)));

}

?考点:gets、strcpy、strcat函数的使用

?分析:因为gets函数可以把空格作为字符读入,所以s1与s2不相等,

其中s2包含空格, s1<s2,那么if条件不满足,所以执行else输

出”#”,两字符串连接后,长度为9(包括空格在内)所以第二个printf

函数输出9。

?答案:B

【例14】设有如下定义char *aa[2]={"abcd","ABCD"};则以下说法中正确的是_____。

A) aa数组元素的值分别是"abcd"和"ABCD"

B) aa是指针变量,它指向含有两个数组元素的字符型一维数组

C) aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D) aa数组的两个元素中各自存放了字符'a'和'A'的地址

?考点:指向字符串的指针。

?分析:aa是一个指针数组。数组元素是两个指针,两个指针分别指向

两个字符串,所以它们的值是两个字符串的首地址,所以答案A不对。

aa是指针数组的数组名而不是变量,所以B不对。数组元素aa[1]指向

字符串"abcd",数组元素aa[2]指向字符串"ABCD"。这两个字符串的所

含有的字符都是5个而不是4个,所以C不对。

?答案:D

7.1.2 填空题:

【例1】以下程序的输出结果是。

#include

void main()

{

char ch[3][5]={"AAAA","BBB","CC"};

printf("\n%s\n",ch[1]);

}

?考点:本例考查的是字符串数组。

?分析:可以用二维数组存放字符串数组,也可以使用指针数组分别指向

若干个字符串。本题中是使用二维数组存放字符串,所以输出ch[1]即

输出第二个字符串”BBB”。

?答案: BBB

【例2】以下程序的输出结果是。

#include

void main()

{

char *p="abcdefgh",*r;

long *q;

q=(long *)p;

q++;

r=(char *)q;

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

}

?考点:本例考查指针指向字符串的操作方法

?分析:指针q的基类型为long,所以经过q++,指针挪动了4个字节,

即从指向字符a挪到了指向字符e,所以输出的字符串为efgh

?答案: efgh

【例3】以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。请填空(等考1998年9月第12题)#include

void main()

{

char str1[100],str2[100];

int i,s;

printf("\n Input string1:\n");

gets(str1);

printf("\n Input string2:\n");

gets(str2);

i=0;

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

i++;

s=【2】;

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

}

?考点:本例考查字符串大小比较

?分析:本例是利用字符数组来存放字符串,并借助于字符数组元素的引

用来对字符串中的每个字符进行操作。第一空要求填写while循环的条

件,题中已给出第一个条件:str1[i]==str2[i],表示如果对应两字符

相等,就继续比较下一个字符。对于一个字符串而言,循环能进行的前

提是该字符串没有结束,所以循环还应满足str1[i]!=’\0’,因

为’\0’的ASCII码值为0,所以这一空也可以填0。题目要求输出两字

符串第一个不相同字符的ASCII之差,程序的最后一条语句已明确提示,

输出值为s的值,所以第二空应是把两对应字符之差赋给s。

?答案:【1】’\0’或0 【2】str1[i]-str2[i]

【例4】设有两个字符串a、b,下面程序是将a、b的对应字符中的较大者存放在数组c的对应位置上。请填空。

#include

#include

void main()

{

int k=0;

char a[80],b[80],c[80]={ '\0'},*p,*q;

p=a;q=b; gets(a);gets(b);

while(【1】)

{

if(【2】)

c[k]=*q;

else c[k]=*p;

p++; q++; k++;

}

if (*p!=0)

strcat(c,p);

else

strcat(c,q);

puts(c);

}

?考点:本例考查利用指针对字符串的操作。

?分析:本例采用指针指向两个字符串,通过指针的移动实现对字符数组

中的每一个字符的操作。因为题目的要求是把两个字符串中对应较大的

字符放入字符串c中,所以【1】中应填入的是循环控制条件,考虑到如

果两串中有一个遇到’\0’就不必再比下去了,所以【1】中的循环控制

条件应该是两串都不结束,可以填*p!=’\0’&&*q!=’\0’,也可以填

*p!=0&&*q!=0因为’\0’的ASCII码值就是0。【2】中所填的是if语

句的执行条件,如果条件为真就执行c[k]=*q;否则执行c[k]=*p;所以该

条件应该能保证*q>*p。

?答案:【1】*p!='\0'&&*q!='\0' 【2】*q>*p

【例5】下列程序段的输出结果是。

#include

void main()

{ char b[]="Hello,you";

b[5]=0;

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

}

?考点:字符串结束符在整个字符串中的作用、字符串结束符的ASCII码

?分析:因为字符串结束符的ASCII码值为0,所以b[5]=0;等价于

b[5]=’\0’;输出字符串时,到第一个’\0’为止,所以输出的字符串

直到b[4]为止。

?答案: Hello

【例6】阅读程序:

#include

void main()

{

char str1[]="how do you do" ,str2[10];

char *p1=str1,*p2=str2;

scanf("%s",p2); printf("%s",p2); printf("%s\n",p1);

}

运行上面的程序,输入字符串HOW DO YOU DO 则程序的输出结果

是。

?考点:格式控制符”%s”的使用

?分析:因为格式控制符”%s”遇空格就终止读入,所以实际上读入的字

符串p2只有”HOW”。

?答案: HOWhow do you do

7.2自测练习与参考答案

7.2.1 选择题:

1.对两个数组a和b进行如下初始化

char a[]="ABCDEF";

char b[]={’A’,’B’,’C’,’D’,’E’,’F’};

则以下叙述正确的是______。

A) a数组与b数组完全相同

B) a与b长度相同

C) a中存放字符串,b中存放字符。

D) a数组比b数组长度长

2.下面程序段的运行结果是_______。

char c[]="\t\v\\\0will\n";

printf("%d",strlen(c));

A) 14 B) 3 C) 9 D) 字符串中有非法字符,输出值不

确定

3.满足字符串s1大于字符串s2时if条件为真,应当使用_______。

A) if(s1>s2)

B) if(strcmp(s1,s2))

C) if(strcmp(s2,s1)>0)

D) if(strcmp(s1,s2)>0)

4.下面判断正确的是_______。

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

B) char str[10]={"china"};等价于char str[10];str[]={"china"};

C) char *s="china";等价于char *s;s="china";

D) char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";

5.以下程序执行时的输出结果为_______。

#include

void main()

{

char s1[]="language",s2[]="program";

char *p1=s1,*p2=s2;

int k;

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

if(*(p1+k)==p2[k])

putchar(*(k+p1));

}

A) age B) ga C) language

D) 有语法错误,不能运行

6.下述程序的输出是:________。

#include

int fun(char *s)

{

char *p=s;

while(*p!='\0')

p++;

return p-s;

}

void main()

{

printf("\n%d",fun("Hello!"));

}

A) 3 B) Hello!6 C) 空值(即无输出) D) 6

7.下列字符串的输出结果是_______。

char *s="\"C:\\ANSI.SYS\"";

printf("%s",s);

A) 字符串含非法字符,输出值不定 B) "C:\\ANSI.SYS\"

C) "C:\ANSI.SYS" D)

"C:\\ANSI.SYS"

8.有如下定义:

char s1=”abcde”,s2=”aBcDe”;

则表达式strcmp(s1+1,s2+1)的值是________。

A) 0 B)负数 C) 正数 D) 非零值,无法确定正负

9.下列程序从终端输入一行字符作为字符串存入字符数组,然后输出。请在每组

中选择正确答案

#include

void main()

{

char s[30],*sp;

int i;

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

{

s[i]=getchar();

if(s[i]=='\n')

break;

}

s[i]= 1 ;

sp= 2 ;

while(*sp)

putchar(*sp 3 );

}

(1)A) '\n' B) s[i--] C) '\0' D) s[--i] (2)A) s B) s[0] C) '\0' D) '\n' (3)A) +1 B) [++i] C) ++ D) [i--]

10.有以下程序

#include

void ss(char *s,char t)

{

while(*s)

{

if(*s==t) *s=t-'a'+'A';

s++;

}

void main()

{

char str1[100]="abcddfefdbd",c='d';

ss(str1,c);

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

}

程序运行后的输出结果是_______。

A) ABCDDEFEDBD B) abcDDfefDbD

C) abcAAfefAbA D) Abcddfefdbd

11.以下程序中函数scmp的功能是返回形参指针s1和 s2所指字符串中较小字符串的首地址

#include

#include

char *scmp(char *s1,char *s2)

{

if(strcmp(s1,s2)<0)

return(s1);

else return(s2);

}

void main()

{

int i;

char string[20],str[3][20];

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

gets(str[i]);

strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/

strcpy(string,scmp(string,str[2]));

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

}

运行时依次输入:abcd、abba和abc三个字符串,则输出结果为

A) abcd B) abba C) abc D) abca

12.有以下程序

main()

{ char *s[]={"one","two","three"},*p;

p=s[1];

printf("%c,%s\n",*(p+1),s[0]);

}

执行后输出结果是_______。

A) n,two B) t,one C)w,one D) o,two

7.2.2 填空题:

1.以下程序运行后的输出结果是。

{ char s[ ]="9876",*p;

for ( p=s ; p

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

}

2.以下程序的输出结果是。

#include

void main()

{

char s[]="abcdef";

s[3]='\0';

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

}

3.有十个字符串。下面程序的功能是在每个字符串中,找出最大字符按一一对应的顺序放入一维数组a中,即第i个字符串中的最大字符放入a[i]中,输出每个字符串的最大字符。请填空。

#include

void main()

{

char s[10][20];

int a[10],i,j;

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

gets(s[i]);

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

{

【1】;

for(j=1;s[i][j]!='\0';j++)

if(a[i]

【2】;

}

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

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

}

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

#include

void main()

{

char s[]="ABCCDA";

int k;

char c;

for(k=1;(c=s[k])!='\0';k++)

{

switch(c)

{

case 'A':putchar('%');continue;

case 'B':++k;break;

default:putchar('*');

case 'C':putchar('&');continue;

}

putchar('#');

}

}

5.下面程序的功能是输出两个字符串中较小的串的长度。请填空。

#include"stdio.h"

#include"string.h"

void main()

{

char str1[20],str2[20];

int i,k,num;

gets(str1);

gets(str2);

i=strlen(str1);

k=strlen(str2);

num=【1】?【2】:【3】;

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

}

6.以下函数的功能是删除字符串s中的所有数字字符。请填空。

void dele(char*s)

{

int n=0,i;

for(i=0;s[i];i++)

if(【1】)

s[n++]=s[i];

s[n]=【2】;

}

7.下面程序的功能是将两个字符s1和s2连接起来。请填空。

#include

void conj(char *p1,char * p2);

void main()

{

char s1[80],s2[80];

gets(s1); gets(s2);

conj(s1,s2);

puts(s1);

}

void conj(char *p1,char * p2)

{

char *p=p1;

while (*p1)【1】;

while (*p2)

{ *p1=【2】; p1++; p2++; }

*p1='\0';

【3】;

}

8.下面程序是判断输入的字符串是否是“回文”,(顺读和倒读都一样的字符串

称“回文”,如 level)。请填空

#include

#include

void main()

{

char s[81],*p1,*p2;

int n;

gets(s);

n=strlen(s);

p1=s;

p2=【1】;

while(【2】)

{

if(*p1!=*p2)

break;

else

{ p1++;【3】;}

}

if(p1

printf("No\n");

else

printf("Yes\n");

}

7.2.3 参考答案:

一.选择题:

1.D

2.B

3.D

4.C

5.B

6.D

7.C

8.C

9.(1)C

(2)A (3)C

10.B 11.B 12.C

二.填空题:

1. 9876

876

2. abc

3.【1】a[i]=s[i][0] 【2】a[i]=s[i][j]

4. #&*&%

5.【1】strcmp(str1,str2)<0 【2】i 【3】k

6.【1】s[i]<'0'||s[i]>'9' 【2】'\0'

7.【1】p1++ 【2】*p2 【3】p1=p

8.【1】s+n-1 【2】p1

C语言试卷及答案

《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言练习试题和答案

单项选择题: 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 [i] t 6.下列C语言用户标识符中合法的是( B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# 语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A) B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是( D )。 A. 软件是一种逻辑实体,具有抽象性 B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显着特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于( D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

大学C语言考试试题及答案

精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串

选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言试卷及答案

一、选择题(每题 1 分,共 20 分) 1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。 A、循环 B、递归 C、转移 D、嵌套 2. 下列标识符中,合法的是_______ 。 A) unsigned B) 5ab C) INT# D)_num2 3. 若float x ;x = 10/4 ;x的值是。 A、2.5 B、2.0 C、3 D、 2 4. 表达式!x 等价于。 A、x==0 B、x==1 C、x != 0 D、x != 1 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6. 能将高级语言编写的源程序转换为目标程序的是。 A、链接程序 B、解释程序 C、编译程序 D、编辑程序 7. 下列语句定义pf为指向float类型变量f的指针,是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8. 一个C程序的执行是从。 A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 9. 能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)||(x<=10)||(x>=200)||(x<=210) C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D、(x>=1)||(x<=10)&&(x>=200)||(x<=210) 10. 对两个数组a和b进行如下初始化 char a[]=“ABCDEF”;char b[]={ …A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是。 A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 11. 是不正确的字符常量。 A、'\n' B、'1' C、"a" D、'\101' 12. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 13. 设变量定义为“int x, *p=&x;”,则&*p相当于。 A、p B、*p C、x D、*&x 14. 有两个字符数组a、b,则以下正确的输入语句是。 A)gets(a,b); B) scanf(“%s%s”,a,b); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”); 15. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A、地址传递 B、单向值传递

C语言全部题目及答案

C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H-

C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes?

c语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由

主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言试题与答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

c语言试题及答案

《C语言》课程综合复习资料 一、单选题 1. 在C语言中,字符型数据在存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码 2. 在C语言中,十进制数47可等价地表示为 A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 A)10 B) 6 C) 0 D) 20 5. 已定义以下函数: fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值 C)形参p中存放的值 D)形参p的地址值 6. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 ); C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b[]={′H′,′e′,′l′,′l′,′o′,′!′}; B) char b[10];b="Hello!";

C语言期末考试题含答案

C语言期末考试题含答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue

7.在while(!x)语句中的!x与下面条件表达式等价的是() A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include <> void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2B)2,2,1C)2,2,2D)2,2,3 9、有以下程序: #include <> void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m); B)k=fun(10,; C)fun(x,n); D)void fun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言试题及答案

C语言试题及答案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成

C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

c语言试卷及答案1

c语言试卷及答案1

浙江理工大学 C程序设计试题(一) 试题二、语言基础题(本题共30分) (一)判断题(本题共10分,每小题1分) 说明:在以下提供的若干陈述中,逐一判断其正确与否,选A表示正确,选B表示错误。 (16) C语言程序的三种基本结构是顺 序、选择和嵌套。 (17) 在C语言程序中,在函数内部定 义的变量称为全局变量。 (18) 运算符“=”和“&=”的优先级相 同。 (19) ‘%f’是不正确的字符常量。 (20) 运算符“+”不能作为单目运算符。 (21) 如果运算符“*”和“/”都是右 结合的,则表达式10*6/5的值是10。 (22) s(s-a)(s-b)(s-c)是合法的C语 言表达式。 (23) 表达式!!6的值是6。 (24) 表达式~(~2<<1)的值是5。 (25) 对于变量定:int a[10],*p=a+8; 数组a的最后一个元素是p[1]。

(二)单选题(本题共20分,每小题2分) (26) 执行语句printf("(26) ", "A");将得到出错信息。 A、%u B、%s C、%e D、%d (27) 设c是一个字符变量,求解表达 (27) 后,c的值不是1就是0。 A、c=getchar()!=’\n’ B、(c=getchar()!)=’\n’ C、c=’1’ D、c=EOF (28) 下列定义中,(28) 定义的变 量可以存放-123.4。 A、long a; B、 unsigned b; C、int d; D、float c; (29) 对于变量定义;char *pp[100], pp是一个(29) 。 A、函数 B、数组元素 C、指针变 量D、数组 (30) 下列程序段的输出结果是 (30) 。 char *st[ ]={ "SUM","MOON","STAR","X"}; printf("(%s,%c) ",*(st+1)+1,*(*(st+2)+2)+2)

c语言试题及答案

单选题 1 .在C语言中,下列类型属于构造类型的是(D ) A整型B .字符型C .实型D .数组类型 2.下列字符串不是标识符的是( D ) A.sum B. Average C. Day_night D. M.D.JOHN 3.在C语言中,回车换行符是(A ) A. n B. t C. v D. b 4.在C语言中,语句和数据定义是用(C )作为结束标记的A句号B .逗号C .分号D .括号 5. 设有如下定义: int x=10,y=5,z; 则语句printf( “%dn”,z= (x+=y,x/y)); 的输出结果是( C ) A.0 B.1 C.3 D.4 6. 10 .以下程序的输出结果是( B ) main( ) {char c1= '8',c2= '2'; printf( “%c,%c,%d,%d”n ,c1,c2,c1 -c2,c1+c2); }

精选文库 A.因输出格式不合法,输出出错信息 B.8,2,6,106 C . 8,2,6,10 D . 825,9 7.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 (A)mai n() {int x; seanf( “ %d,&x); if(x++>5) printf( “%dn ,x); else prints “%dn ,x --); A. 7 禾R 5 B . 7 禾R 4 C . 6 禾R 4 8.表达式(int)2.1416 的值时(A ) A. 2 B. 2.1 C. 0 D. 3 9.下列运算符优先级最高的是(B ) A. > B. + C. && D. != 10.C语言容许函数值类型缺省定义,此时该函数值隐含的类型时(B ) A. float 型 B. Int 型 C. Long 型 D. Double 型 11、C程序的基本构成单位是(C) A子程序B、过程C、函数D、文件 12、C语言中要求操作数都为整型数据的算术符是( C )

C语言模拟试卷及答案详解

2012―2013 学年第一学期 《C 语言程序设计》模拟试卷(B) 一、单项选择题(每题1分,共30分) 1.C 语言程序总是从______开始执行。 A) 第一条语句 B) 第一个函数 C) 主函数 D) 子程序 2.以下选项中正确的C 语言标识符是______。 A) a+b B) 3Dmax C) _25 D) %d 3.以下选项中正确表示字符型常量的是______。 A) '\t' B) "a" C) 'abc' D) '279' 4.以下选项中属于C 语言基本数据类型的是______。 A) 逻辑型 B) 双精度型 C) 复数型 D) 集合型 5.已知:int a=8,b=5,c;,则执行语句c=a%b+0.3;后,c 的值是______。 A) 1 B) 1.3 C) 3 D) 3.3 6.设在程序中的a ,b ,c 均被定义为整型并且已赋予大于1的值,能正确表示代数式abc 1的表达式 是______。 A)1/a*b*c B)1/(a*b*c) C)1/a/b/(float)c D)1.0/a/b/c 7.已知字符'A'的ASCII 码值为十进制数65,则执行语句printf("%c",'A'+2);后,输出结果是______。 A) A B) C C) 65 D) 67 8.已知:int i=1;,则执行语句printf("%d",i++);后,输出结果是______。 A) 1 B) 2 C) -1 D) -2 9.以下选项中,和语句x*=y+2;等价的是______。 A) x=x*y+2; B) y=x*(y+2); C) x=y+2*x; D) x=x*(y+2); 10.以下选项中能正确判断字符变量c 不是大写字母的表达式是______。 A) c<'A' && c>'Z' B) !(c<'A' && c>'Z') C) c>='A' || c<='Z' D) !(c>='A' && c<='Z') 11.已知:float a=7.0,b=2.5;,则表达式(int)a/(int)b 的值是______。 A) 2 B) 2.8 C) 3 D) 3.5 12.已知:int a,b,c;,若要给变量a 、b 、c 输入数据,以下正确的输入语句是______。 A) scanf ("%d,%d,%d",a,b,c); B) scanf ("%d,%d,%d",&a;&b;&c); C) scanf ("%d,%d,%d",&a&b&c); D) scanf ("%d,%d,%d",&a,&b,&c); 13.已知:int a=1,b=2;,则执行语句printf("%d",a>b?a:b);后,输出结果是______。 A) 0 B) 1 C) 2 D) 以上都不正确 14.以下选项中叙述正确的是______。 A) 在switch 语句中,不一定使用break 语句 B) break 语句必须与switch 语句中的case 配合使用 C) 在switch 语句中必须使用default D) break 语句只能用于switch 语句中 15.执行以下程序后,输出结果是______。 #include void main()

C语言考试题及答案

一、单项选择题:(10分,每题2分) 1.char *p[10];该语句声明了一个: c 。 A)指向含有10个元素的一维字符型数组的指针变量p B)指向长度不超过10的字符串的指针变量p C)有10个元素的指针数组p,每个元素可以指向一个字符串 D) 有10个元素的指针数组p,每个元素存放一个字符串 2.若int x;且有下面的程序片断,则输出结果为: D 。 for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "**%d\n", x); } A) ##3B) **3C) **3D)##3**4 **4 ##4 ##4**5 ##5 ##5 **5 3.在while(!x)语句中的!x与下面条件表达式等价的是:D 。 A) x!=0 B) x==1 C) x!=1 D) x==0 4.已知 struct point { int x; int y; }; struct rect { struct point pt1; struct point pt2; }; struct rect rt; struct rect *rp = &rt; 则下面哪一种引用是不正确的__D______。 A) r t.pt1.x B) (*rp).pt1.x C) r p->pt1.x D) rt->pt1.x 5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为: C 。 A) *(a+j*n+i) B) *(a+i*n+j) C) *(*(a+i)+j) D) *(*a+i)+j CDDDC 二、分析程序并写出运行结果。(25分,每题5分) 1. #include main()

C语言试题及答案

一 下面四个选项中,均是不合法的用户标识符的选项是()。 A、float la0 _A B、A P_0 do C、_123 temp int D、b-a goto int 表达式18/4*sqrt(4.0)/8值的数据类型为()。 A、double B、float C、int D、不确定 设: long w=65535,t=7654321; 根据下面的输出结果,正确的程序段是( ). w=65535,t=7654321 end A、printf("w=%5d,t=%7d\n",w,t);printf("%s","end'); B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end"); C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end"); D、printf("w=%5u,t=%7u\n",w,t);printf( "end"); 选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。 A、0 B、-1 C、非零的数 D、1 假定有以下变量定义: int k=7,x=12; 则能使值为3的表达式是:( ) A、(x%=k)-(k%=5)

B、x%=(k-k%5) C、x%=k-k%5 D、x%=(k%=5) 在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的 表达式是()。 A、(E>0||E<0) B、(E==0) C、(!E==0) D、(E!=0) 下面有关 for 循环的正确描述是()。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 在C语言中,一维数组的定义方式为:类型说明符数组名()。 A、[整型常量]或[整型表达式] B、[正整型常量表达式] C、[整型表达式] D、[常量表达式] 以下正确的说法是( ). A、函数的类型决定返回值的类型 B、定义函数时,形参的类型说明可以放在函数体内 C、return后面不能为表达式 D、如果形参与实参的类型不一致,以实参类型为准 若调用一个函数,且此函数中没有return语句,则正确的说法是: 该函数()。 A、没有返回值 B、返回一个不确定的值 C、返回若干个系统默认值 D、能返回一个用户所希望的值 设函数的调用形式如下: f((x1, x2),(y1,y2,y3)),则函数有 ( )个形参. A、2 B、4 C、3 D、5

c语言试题及答案24213

C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D, E ) A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确; D、a[0]与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述( A,C,D )。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述( A,B,D,E ) A、静态局部变量在静态存储区内分配单元() B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是( A ,C)。 A、由main 函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量 E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有( A,B,D ) A、putchar () B、fread() C、rewind () D、purw() E、fseek() 二、程序阅读,并给出运行结果(共10分,每题5分)。 (1)main() { unsigned a,b,x int n; a=0x763 输出结果:

相关文档
最新文档