b) a=b; c=a; if(c!"/>
首页 百科知识 道语言知识题

道语言知识题

时间:2022-09-18 百科知识 版权反馈
【摘要】:(i%3)) s+=i; printf;} 程序的输出结果是()A)409 B)277 C)1 D)91 8.当变量c的值不为2、4、6时,值也为"真"的表达式是()A)|||| B)||(c!=1) 9.若变量已正确定义,有以下程序段 int a=3,b=5,c=7; if(a>b) a=b; c=a; if(c!

50道C语言知识题 

1.以下叙述中正确的是()  

A)用C程序实现的算法必须要有输入和输出操作    

B)用C程序实现的算法可以没有输出但必须要有输入                        

C)用C程序实现的算法可以没有输入但必须要有输出     

D)用C程序实现的算法可以既没有输入也没有输出    

2.下列可用于C语言用户标识符的一组是()  

A)void, define, WORD 

B)a3_3,_123,Car     

C)For, -abc, IF Case            

D)2a, DO, sizeof    

3.以下选项中可作为C语言合法常量的是()  

A)-80  B)-080  C)-8e1.0  D)-80.0e    

4.若有语句:char *line[5];,以下叙述中正确的是  

A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量     

B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组     

C) 定义line是一个指针数组,语句中的*号称为间址运算符    

D) 定义line是一个指向字符型函数的指针    

5.以下定义语句中正确的是()  

A)int  a=b=0;          

B)char  A=65+1,b=′b′;      

C)float  a=1,*b=&a,*c=&b;          

D)double  a=00;b=1.1;    

6.有以下程序段  

char ch; int k; ch=′a′; k=12;  

printf("%c,%d,",ch,ch,k);    

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

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是()  

A)因变量类型与格式描述符的类型不匹配输出无定值      

B)输出项与格式描述符个数不符,输出为零值或不定值  

C)a,97,12k=12      

D)a,97,k=12    

7.有以下程序  

main()  

{  int  i,s=1;  

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

if(!(i%5)&&!(i%3))  

s+=i;  printf("%d\n",s);}  

程序的输出结果是()

A)409   B)277   C)1  D)91  

8.当变量c的值不为2、4、6时,值也为"真"的表达式是()

A)(c==2)||(c==4)||(c==6)      

B)(c>=2&& c<=6)||(c!=3)||(c!=5)      

C)(c>=2&&c<=6)&&!(c%2)      

D)(c>=2&& c<=6)&&(c%2!=1)    

9.若变量已正确定义,有以下程序段      

int  a=3,b=5,c=7;  

if(a>b) a=b;  c=a;        

if(c!=a) c=b;  

printf("%d,%d,%d\n",a,b,c);  

其输出结果是()  

A)程序段有语法错  B)3,5,3            

C)3,5,5        D)3,5,7    

10.有以下程序  

#include  <stdio.h>  main()  

{  int  x=1,y=0,a=0,b=0;        

switch(x) {  

case  1: switch(y)  

{  case  0:a++;  break;        

case  1:b++;  break;  }  

case 2:a++; b++; break;  

case 3:a++; b++;  }  

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

程序的运行结果是()  

A)a=1,b=0  B)a=2,b=2  C)a=1,b=1  D)a=2,b=1    

11.下列程序的输出结果是 () 

var cpro_psid ="u2572954"; 

var cpro_pswidth =966; 

var cpro_psheight =12

A)a=4,b=4  B)a=4,b=5  C)a=5,b=4  D)a=5,b=5       

已知  #int t=0;  while (t=1)  {...}  

则以下叙述正确的是()  

A)循环控制表达式的值为0  

B)循环控制表达式的值为1      

C)循环控制表达式不合法   

D)以上说法都不对    

12.下面程序的输出结果是  main()  

{ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;  

printf("%d\n",*(p+2));}  

A)3  B)4  C)1  D)2    

13.以下错误的定义语句是()  

A)int  x[][3]={{0},{1},{1,2,3}};      

B)int  x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};      

C)int  x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};     

D)int  x[][3]={1,2,3,4};    

14.有以下程序  

void ss(char *s,char t)  

{  while(*s)  

{  if(*s==t)*s=t-′a′+′A′;  s++; } }  

main()  

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

ss(str1,c); printf("%s\n",str1);}  

程序运行后的输出结果是  

A)ABCDDEFEDBD   

B)abcDDfefDbD     

C)abcAAfefAbA  

D)Abcddfefdbd  

15.有如下程序  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    

16.有定义语句:char  s[10];,若要从终端给s输入5个字符,错误的输入语句是()      

A)gets(&s[0]);    B)scanf("%s",s+1);     

C)gets(s);    D)scanf("%s",s[1]);    

17.以下叙述中错误的是  

A)在程序中凡是以"#"开始的语句行都是预处理命令行      

B)预处理命令行的最后不能以分号表示结束           

C)#define  MAX  是合法的宏定义命令行     

D)C程序对预处理命令行的处理是在程序执行的过程中进行的    

18.设有以下说明语句  

typedef struct  { int n;  

  char ch[8];  } PER;  

则下面叙述中正确的是  

A)PER 是结构体变量名   

B)PER是结构体类型名      

C)typedef struct 是结构体类型   

D)struct 是结构体类型名    

19.以下叙述中错误的是  

A)gets函数用于从终端读入字符串  

B)getchar函数用于从磁盘文件读入字符      

C)fputs函数用于把字符串输出到文件      

D)fwrite函数用于以二进制形式输出数据到文件    

20.以下能正确定义一维数组的选项是  

A)int a[5]={0,1,2,3,4,5};     

B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′};    

C)char a={′A′,′B′,′C′};     

D)int a[5]="0123";    

21.有以下程序  #include<string.h>  main()  

{  char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};  printf("%d%d\n",strlen(p),strlen(q));}  以下叙述中正确的是  

A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3  

B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3  

C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3  

D) 由于p和q数组中都没有字符串结束符,故长度都不能确定    

22.有以下程序  

#include  <stdio.h>  #include  <string.h>  

void  fun(char  *s[],int  n)  

{  char  *t; int  i,j;  

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

for(j=i+1;j<n;j++)  

if(strlen(s[i])>strlen(s[j]))  

{t=s[i];s[i]:s[j];s[j]=t;}  }  

main()  

{  char  *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};  

fun(ss,5);      

printf("%s,%s\n",ss[0],ss[4]);  }  

程序的运行结果是()  

A)xy,aaaacc  B)aaaacc,xy  C)bcc,aabcc  D)aabcc,bcc    

23.有以下程序  

#include  <stdio.h>  

int f(int  x)  {  int  y;  

if(x==0||x==1)  return(3);  

y=x*x-f(x-2);  return  y;  }  

main()  {  int  z;  

z=f(3);printf("%d\n",z);  }  

程序的运行结果是()  

A)0    B)9    C)6    D)8    

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

char str[]="ABC",*p=str;  printf("%d\n",*(p+3));  

A)67   B)0  C)字符′C′的地址   D)字符′C′    

26.指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是: () 

A)a.next=c; c.next=b; 

B)p.next=q; q.next=p.next;      

C)p->next=&c; q->next=p->next;    

D)(*p).next=q; (*q).next=&b;    

27.对于下述程序,在方式串分别采用"wt"和"wb"运行时,两次生成的文件TEST的长度分别是()  #include<stdio.h>  void main()  

{  FILE *fp=fopen("TEST",);  

fputc(′A′,fp);fputc(′\n′,fp); 

fputc(′B′,fp);fputc(′\n′,fp); 

fputc(′C′,fp);  fclose(fp); }  

A)7字节、7字节    B)7字节、5字节    

C)5字节、7字节    D)5字节、5字节  

28.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是()  

A)a^b    B)a|b    C)a&b    D)a<<4   

29.下面的程序段运行后,输出结果是()  

int i,j,x=0;  

static int a[8][8];  for(i=0;i<3;i++)  

for(j=0;j<3;j++)  a[i][j]=2*i+j;  

for(i=0;i<8;i++)  x+=a[i][j];  

printf("%d",x);  

A)9    B)不确定值    C)0    D)18    

30.下列程序执行后的输出结果是() 

void func(int *a,int b[])  

{  b[0]=*a+6; }  main()  

{  int a,b[5];  a=0; b[0]=3;  

func(&a,b); printf("%d\n",b[0]);}      

A)6    B)7    C)8    D)9    

31.以下不正确的叙述是() 

A)在C程序中,逗号运算符的优先级最低    

B)在C程序中,APH和aph是两个不同的变量 

C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变 

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

32.请选出可用作C语言用户标识符的是() 

A)void,define,WORD   B)a3_b3,_123,IF    

C)FOR,--abc,Case    D)2a,Do,Sizeof  

33.以下选项中,不能作为合法常量的是() 

A)1.234e04    B)1.234e0.4   C)1.234e+4    D)1.234e0 

34.在C语言中,运算对象必须是整型数的运算符是() 

A)%   B)\   C)%和\   D)** 

35.若变量均已正确定义并赋值,以下合法的C语言赋值语句是() 

A)x=y==5;   B)x=n%2.5;  C)x+n=i;  D)x=5=4+1;    

36.有以下程序段  

char  ch;    

int  k;  ch=′a′; k=12;  

printf("%c,%d,",ch,ch,k);    

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

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是()  

A)因变量类型与格式描述符的类型不匹配输出无定值    

B)输出项与格式描述符个数不符,输出为零值或不定值  

C)a,97,12k=12    D)a,97,k=12   

37.已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是()

A)kk>=′A′&& kk<=′Z′  

B)!(kk>=′A′||kk<=′Z′)     

C)(kk+32)>=′a′&&(kk+32)<=′Z′    

D)isalpha(kk)&&(kk<91)  

38.当变量c的值不为2、4、6时,值也为"真"的表达式是()  

A)(c==2)||(c==4)||(c==6)   

B)(c>=2&& c<=6)||(c!=3)||(c!=5)  

C)(c>=2&&c<=6)&&!(c%2)  

D)(c>=2&& c<=6)&&(c%2!=1)   

39.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()      

A)(exp==0)   B)(exp!=0)         

C)(exp==1)   D)(exp!=1)

40.以下不正确的定义语句是()       

A)double x[5]={2.0,4.0,6.0,8.0,10.0};  

B)int y[5]={0,1,3,5,7,9}; 

C)char  c1[]={1,2,3,4,5};  

D)char c2[]={\x10, xa, \x8};     

41.下列程序执行后的输出结果是()  

main()   { int a[3][3], *p,i;        p=&a[0][0];         

for(i=1; i<9; i++)p[i]=i+1;        printf("%d\n",a[1][2];)      

 A)3    B)6         C)9         D)随机数    

42.设有以下程序段  

int x=0,s=0;   while(!x!=0)s+=++x;  printf("%d",s);  ()      

A)运行程序段后输出0    

B)运行程序段后输出1    

C)程序段中的控制表达 式是非法的          

D)程序段执行无限次     

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

char *s="abcde";  s+=2;printf("%d",s);       

A)cde         

B)字符′c′     

C)字符′c′的地址  

D)无确定的输出 结果       

44.阅读下列程序,则执行后的结果为()  

#include "stdio.h"  main()   {   

int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};  

printf("%x,%x\n",c[2][2],*(*(c+1)+1));}       

A)3e,6           B)62,5           C)56,5          D)3E,6       

45.下面判断正确的是()       

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

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

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

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

 46.若有定义:int  a[2][3];,以下选项中对a数组元素正确引用的是()  

A)a[2][!1]  B)a[2][3]          

C)a[0][3]   D)a[1>2][!1]     

47.有定义语句:char  s[10];,若要从终端给s输入5个字符,错误的输入语句是()      

A)gets(&s[0]);     B)scanf("%s",s+1);    

 C)gets(s);            D)scanf("%s",s[1]);     

48.有以下程序   

#include  <stdio.h>  #define  N  5  

#define  M  N+1  

#define  f(x)  (x*M)  main()  

 { int  i1,i2;       i1=f(2);       i2=f(1+1);     

printf("%d %d\n",i1,i2); }   程序的运行结果是()       

A)12  12   B)11  7        C)11  11    D)12  7    

49.若有以下说明和定义  

union dt   { int a; char b; double c;}data;  

以下叙述中错误的是()       

A)data的每个成员起始地址都相同     

B)变量data所占内存字节数与成员 c所占字节数相等       

C)程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000    

D)data可以 作为函数的实参      

50.有以下程序  #include<stdio.h>  main()  

 {    FILE *fp;int k,n,a[6]={1,2,3,4,5,6};   

fp=fopen("d2.dat","w");   

fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);  

fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);  

fclose(fp);   fp=fopen("d2.dat","r");  

 fscanf(fp,"%d%d",&k,&n);

printf("%d%d\n",k,n); fclose(fp);   }   

程序运行后的输出结果是()

A)1  2       B)1  4         C)123  4          D)123  

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈