C程序复习题1

C程序复习题1
2011年12月15日
  一、正误 共 10 题
  第 1 题
  char *p="girl"; 的含义是定义字符型指针变量 p , p 的值是字符串 "girl" 。
  答案: N
  第 2 题
  C 语言的当型循环是先执行循环后判断条件 .
  答案: N
  第 3 题
  C 语言中的整型常量有 3 种表示方法 .
  答案: Y
  第 4 题
  表达式 1/4+2.75 的值是 3.
  答案: N
  第 5 题
  C 语言中只能逐个引用数组元素而不能一次引用整个数组。
  答案: Y
  第 6 题
  静态变量和外部变量都是全局变量 , 它们的存储是静态的 .
  答案: N
  第 7 题
  若有 int i=10,j=2; 则执行完 i*=j+8; 后 i 的值为 28.
  答案: N
  第 8 题
  char a[]={'a','b','c'};char b[]={"abc"}; 数组 a 和数组 b 占用的内存空间大小不一样 .
  答案: Y
  第 9 题
  "++" 运算符的优先级比 "+" 运算符的优先低 .
  答案: N
  第 10 题
  unsigned 和 void 在 C 中都是保留字 .
  答案: Y
  二、单项选择 共 30 题
  第 1 题
  若 char a[10]; 已正确定义 , 以下语句中不能从键盘上给 a 数组的
  所有元素输入值的语句是 ().
  A:gets(a);
  B:scanf("%s",a);
  C:for(i=0;ic)b=a;a=c;c=b; 则 c 的值为()。
  A:1
  B:2
  C:3
  D: 不一定
  答案 : B
  第 7 题
  以下程序段 char *alp[]={"ABC","DEF","GHI"}; int j; puts(alp[1]);
  的输出结果是 () 。
  A:A
  B:B
  C:D
  D:DEF
  答案: D
  第 8 题
  在 C 语言中, char 型数据在内存中的存储形式是()。
  A: 补码
  B: 反码
  C: 原码
  D:ASCII 码
  答案: D
  第 9 题
  以下不符合 C 语言语法的赋值语句是()。
  A:a=1,b=2
  B:++j;
  C:a=b=5;
  D:y=(a=3,6*5);
  答案: A
  第 10 题
  若使用一维数组名作函数实参 , 则以下正确的说法是 ().
  A: 必须在主调函数中说明此数组的大小
  B: 实参数组类型与形参数组类型可以不匹配
  C: 在被调用函数中 , 不需要考虑形参数组的大小
  D: 实参数组名与形参数组名必须一致
  答案: A
  第 11 题
  下列程序的输出结果是()。
  main()
  {int a=7,b=5;
  printf("%d\n",b=b/a);
  }
  A:0
  B:5
  C:1
  D: 不确定值
  答案: A
  第 12 题
  经过下列的语句 int j,a[10],*p; 定义后 , 下列语句中合法的是 ().
  A:p=p+2;
  B:p=a[5];
  C:p=a[2]+2;
  D:p=&(j+2);
  答案: A
  第 13 题
  下列字符序列中,不可用作 C 语言标识符的是()。
  A:b70
  B:#ab
  C:symbol
  D:a_1
  答案: B
  第 14 题
  以下不是无限循环的语句为 ().
  A:for(y=0,x=1;x>++y;x=i++) i=x;
  B:for(;;x++=i);
  C:while(1){x++;}
  D:for(i=10;;i--) sum+=i;
  答案: A
  第 15 题
  若 ch 为 char 型变量 ,k 为 int 型变量 ( 已知字符 a 的 ASCII 十进制代码为 97) ,
  则以下程序段的执行结果是()。
  ch='a'; k=12; printf("%x,%o,",ch,ch,k); printf("k=%%d\n",k);
  A: 因变量类型与格式描述符的类型不匹配 , 输出无定值
  B: 输出项与格式描述符个数不符 , 输出为零值或不定值
  C:61,141,k=%d
  D:61,141,k=%12
  答案: C
  第 16 题
  在位运算中,操作数每右移一位 , 其结果相当于()。
  A: 操作数乘以 2
  B: 操作数除以 2
  C: 操作数乘以 16
  D: 操作数除以 16
  答案: B
  第 17 题
  若有 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a; 则输出结果不为 5
  的语句为()。
  A:printf("%d",*(a+5));
  B:printf("%d",p[5]);
  C:printf("%d",*(p+5));
  D:printf("%d",*p[5]);
  答案: D
  第 18 题
  以下标识符中,不能作为合法的 C 用户定义标识符的是()。
  A:a3_b3
  B:void
  C:_123
  D:IF
  答案: B
  第 19 题
  C 语言程序中 , 当调用函数时 ().
  A: 实参和虚参各占一个独立的存储单元
  B: 实参和虚参可以共用存储单元
  C: 可以由用户指定是否共用存储单元
  D: 计算机系统自动确定是否共用存储单元
  答案: A
  第 20 题
  已知字母 a 的 ASCII 十进制代码为 97 ,则执行下列语句后的输出结果为()。
  char a='a'; a--;
  printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
  A:b,c
  B:a-- 运算不合法 , 故有语法错
  C:98,c
  D: 格式描述和输出项不匹配 , 输出无定值
  答案: C
  第 21 题
  下列程序段的输出结果为 ().
  int a=7,b=9,t;
  t=a*=a>b?a:b;
  printf("%d",t);
  A:7
  B:9
  C:63
  D:49
  答案 : C
  第 22 题
  设 char *s="\ta\017bc"; 则指针变量 s 指向的字符串所占的字节数
  是 () 。
  A:9
  B:5
  C:6
  D:7
  答案: C
  第 23 题
  为了避免在嵌套的条件语句 if-else 中产生二义性, C 语言规定 :
  else 子句总是与()配对。
  A: 缩排位置相同的 if
  B: 其之前最近的 if
  C: 其之后最近的 if
  D: 同一行上的 if
  答案: B
  第 24 题
  下列数据中,为字符串常量的是()。
  A:A
  B:"house"
  C:How do you do.
  D:$abc
  答案: B
  第 25 题
  设 C 语言中 ,int 类型数据占 4 个字节 , 则 short 类型数据占 ().
  A:1 个字节
  B:2 个字节
  C:4 个字节
  D:8 个字节
  答案: B
  第 26 题
  下列运算符中优先级最高的是()。
  A:0||E不能作为合法的 C 用户定义标识符的是 ().
  A:putchar
  B:_double
  C:_123
  D:INT
  答案: A
  第 30 题
  设变量 a 是整型, f 是实型, i 是双精度型,则表达式 10+'a'+i*f 值的
  数据类型为()。
  A:int
  B:float
  C:double
  D: 不确定
  答案: C
  三、程序填空 共 2 题
  第 1 题
  /*-------------------------------------------------------
  【程序填空】
  ---------------------------------------------------------
  题目:从键盘上输入两个复数的实部与虚部,求出并输出它们的
  和、差、积、商。
  -------------------------------------------------------*/
  #include
  void main()
  {float a,b,c,d,e,f;
  printf(" 输入第一个复数的实部与虚部: ");
  scanf("%f, %f",&a,&b);
  printf(" 输入第二个复数的实部与虚部: ");
  scanf("%f, %f",&c,&d);
  /***********SPACE***********/
  【 ? 】 ;
  f=b+d;
  printf(" 相加后复数:实部: %f, 虚部: %f\n",e,f);
  e=a*c-b*d;
  /***********SPACE***********/
  【 ? 】 ;
  printf(" 相乘后复数:实部: %f, 虚部: %f\n",e,f);
  e=(a*c+b*d)/(c*c+d*d);
  /***********SPACE***********/
  【 ? 】 ;
  printf(" 相除后复数:实部: %f, 虚部: %f\n",e,f);
  }
  答案 :
  =======( 答案 1)=======
  e=a+c
  ========= 或 =========
  e=c+a
  =======( 答案 2)=======
  f=a*d+b*c
  ========= 或 =========
  f= a*d + b*c
  ========= 或 =========
  f= a * d + b * c
  =======( 答案 3)=======
  f=(b*c-a*d)/(c*c+d*d)
  ========= 或 =========
  f=(b*c-a*d) / (c*c+d*d)
  ========= 或 =========
  f=( b * c - a * d ) / ( c * c + d * d )
  第 2 题
  /*-------------------------------------------------------
  【程序填空】
  ---------------------------------------------------------
  题目:输出 100 到 1000 之间的各位数字之和能被 15 整除的所有数,
  输出时每 10 个一行。
  -------------------------------------------------------*/
  main()
  {
  int m,n,k,i=0;
  for(m=100;m0)
  ========= 或 =========
  while(0
  #include
  #include
  void fun (char *s, char *t)
  {
  /**********FOUND**********/
  int i;
  sl = strlen(s);
  for (i=0; iRead File Error");
  }
  OUT=fopen("out.dat","w");
  if(OUT==NULL)
  {printf("Write File Error");
  }
  fscanf(IN,"%s",i);
  copy(i,o);
  fprintf(OUT,"%s\n",o);
  fclose(IN);
  fclose(OUT);
  }
  答案: ----------------------
  int i;
  for(i=0;str1!='\0';i++)
  str2=str1;
  str2='\0';
  ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值