帮忙看几道C语言选择题~谢谢啦

●有以下宏定义,则表达式SI(3)的值是()#ifdefPI#defineSI(R)R*R#else#defineSI(R)R+R#endif(A)3(B)6(C)9(D... ●有以下宏定义,则表达式SI(3)的值是()
#ifdef PI
#define SI(R) R*R
#else
#define SI(R) R+R
#endif
(A) 3 (B)6 (C) 9 (D)27
知识点:宏

●如果 int a = 1 , b = 2 则 a > b ? a : b的值是()
(A)1 (B)2 (C)3 (D)4
知识点:问号表达式

●以下代码的运行结果是()
int sum = 0;
for(int i=1;i<10;i++,i++,i++) sum=sum+i;
printf("%d",sum);
(A)1 (B)5 (C) 12 (D)22
知识点:简单循环,注意细节

●以下代码的循环次数是()
for(int i=1;i<10;i++)
{
printf("%d",i);
}
(A)10 (B)9 (C) 8 (D)不循环
知识点:循环次数,注意开始和结束

●以下代码的运行结果是()
void set(int b)
{
b = 10;
}
void main()
{
int a=5;
set(a);
printf("%d",a);
}
(A)10 (B)5 (C) 15 (D)0
知识点: 函数参数,传值,传址

●下面程序的功能是将字符串s中所有的字符c删除。请选择填空。
# include < stdio.h >
main ( )
{
char s[80];
int i, j;
gets(s);
for (i=j=0 ; s[i]!=’\0’; i++)
if (s[i]!=’c’) _________________;
s[j]=’\0’;
put(s);
}
(A) s[j++]=s[i] (B) s[++j]=s[i]
(C) s[i]=s[j]; (D) s[j]=s[i]
知识点:字符串处理

●下面判断正确的是 ( )
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] = ”abc”;d=c;
知识点:基本概念

●下面程序段的运行结果是 ( )
char a[] = "abcdefgh";
char *p=a;
p+=3;
p=strcpy (p,"ABCD");
printf ("%d \n ", strlen (p));
(A) 8 (B) 12 (C) 4 (D) 7
知识点:函数调用及函数功能

●为了判断两个字符串s1和s2是否相等,应当使用 ( )
(A)if (s1= =s2 ) (B)if (s1 = s2 )
(C)if ( strcpy (s1, s2 ) ) (D)if ( strcmp ( s1, s2) = = 0 )
知识点:条件表达式

●对下面是关于结构变量a的定义,正确的叙述是( )
struct student
{ int a;
int garde[3];
} a={35,{89,78,90}};
(A)结构体变量a与结构体成员a同名,所以定义是非法的
(B)结构体中成员类型不可以是数组,所以定义是非法的
(C)如果int类型是占2个字节的存储单元,则结构体变量a有8个字节的存储单元
(D)结构体变量定义时不能初始化,所以定义是非法的
知识点:结构体

●下面的程序输出结果是( )
#define M 2
#define N M+5
#include"stdio.h"
void main( )
{ printf("%d",N*N/2); }
(A)24 (B)21 (C)8 (D)14
知识点:宏

●若有float a=1.5,b=3.5, *pa=&a; *pa*=3;pa=&b; 则正确的是( )
(A)pa的值是1.5 ; (B)*pa的值是4.5
(C)*pa的值是3.5 (D)pa的值是3.5;
知识点:指针
展开
 我来答
一杯坠
2011-01-01 · TA获得超过362个赞
知道答主
回答量:76
采纳率:0%
帮助的人:50.9万
展开全部
  有以下宏定义,则表达式SI(3)的值是(A)
  #ifdef PI
  #define SI(R) R*R
  #else
  #define SI(R) R+R
  #endif
  (A) 3 (B)6 (C) 9 (D)27
  直接执行ifdel语句else部分不执行,执行完遇到endif就结束
  如果 int a = 1 , b = 2 则 a > b ? a : b的值是(B)
  (A)1 (B)2 (C)3 (D)4
  考察选择语句:a>b?a:b 如果a>b成立则值为a 否则为b
  ●以下代码的运行结果是(C)
  int sum = 0;
  for(int i=1;i<10;i++,i++,i++) sum=sum+i;
  printf("%d",sum);
  (A)1 (B)5 (C) 12 (D)22
  for语句里的i++,i++,i++相当于i+=3,所以可得
  以下代码的循环次数是(B)
  for(int i=1;i<10;i++)
  {
  printf("%d",i);
  }
  (A)10 (B)9 (C) 8 (D)不循环
  考察FOR语句,很简单不想讲了,自己去看书去看for语句的执行规律就明白了
  以下代码的运行结果是(B)
  void set(int b)
  {
  b = 10;
  }
  void main()
  {
  int a=5;
  set(a);
  printf("%d",a);
  }
  (A)10 (B)5 (C) 15 (D)0
  考察函数调用的 从main函数开始也从main函数结束 main函数中a=5 调用set后b=5 返回main a就=5
  # include < stdio.h >
  main ( )
  {
  char s[80];
  int i, j;
  gets(s);
  for (i=j=0 ; s[i]!=’\0’; i++)
  if (s[i]!=’c’) ___D______________;
  s[j]=’\0’;
  put(s);
  }
  (A) s[j++]=s[i] (B) s[++j]=s[i]
  (C) s[i]=s[j]; (D) s[j]=s[i]
  问的题目都太基础了,回答不下去,基础不扎实,再去看书,看不懂的话,去图书馆接些工具书辅助一下
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式