提示:内容已经过期谨慎付费,点击上方查看最新答案

程序设计基础(C语言)

  1. 以下对二维数组a的正确说明是( )

  2. A:int a[3][] B:float a(3)(4) C:float a(3,4) D:double a[1][4]
    答案:double a[1][4];  
  3. main(){
    int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
    printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
    }
    以上程序的输出结果是( )。

  4. A:1470 B:0650 C:5430 D:输出值不定
    答案:0,5AI参考:根据题目中的代码,我们有一个4x4的整数数组a,并使用初始化列表对其进行初始化。初始化列表中的元素是从1到7的连续整数,这意味着数组的每个元素都是一个在[1,7]范围内的整数。当我们访问数组元素时,使用的是方括号[]而不是下标运算符[][]。在这种情况下,我们按照从左到右、从上到下的顺序访问数组元素。因此,当我们访问a[0][3],a[1][2],a[2][1],a[3][0]时,将依次得到:* a[0][3] = 7* a[1][2] = 6* a[2][1] = 5* a[3][0] = 1因此,程序输出的结果是:```7651```所以正确答案是选项C:5430。'
  5. 下面哪一项是不正确的字符串赋值或赋初值的方式( )。


  6. 答案:charstr1[10];str1=“string”;
  7. C语言程序的运行过程是( )


  8. A:编辑——编译——运行——连接 B:编译——编辑——连接——运行 C:编辑——编译——连接——运行 D:连接——编辑——运行——编译
    答案:从main()函数开始
  9. 计算机内部运算使用的数是( )。

  10. A:八进制数 B:十六进制数 C:十进制数 D:二进制数
    答案:二进制数
  11. 若有说明:int i,j=2, *p=&j;, 则能完成i=j赋值功能的语句是( )


  12. A:i+&j; B:i=**P C:i=*p; D:*p+*&j;

  13. 下面四个选项中是不合法的选项是( )



  14. AI参考:不符合法的选项是C。在编程中,非法选项通常指的是不符合语法规则、语义错误或者是不符合特定环境要求的选项。对于这个题目,四个选项中,只有C选项是不合法的,因为逗号表达式必须用括号括起来,否则会导致语法错误。其他选项A、B、D都是合法的。'
  15. 以下叙述错误的是( )。

  16. A:函数允许递归调用 B:函数调用可以出现在一个表达式中 C:函数调用可以作为一个函数的形参 D:函数调用可以作为一个函数的实参
    AI参考:选项D是错误的,函数调用不能作为函数的实参。函数调用只能作为函数的参数,即只能作为形参或者引用传递。而实参则是函数实际传递的参数,通常是通过值传递的方式传递给函数的。因此,选项D是错误的,而其他选项都是正确的。'
  17. main ()
    { int a=0,b=4,c=5;
     switch (a==0)
    { case 1:switch(b<0)
    { case 1: printf(“@”); break;
    case 0: printf (“! ”) ; break;
    }
    case 0:switch(c==5)
    {case 0: printf (“*”) ; break;
    case 1: printf (“#”) ; break;
    default: printf (“%”) ;
    } break;
    default:printf(“&”);


    以上程序的运行结果是( )


  18. A:! B:!# C:!* D:!*&
    AI参考:程序的运行结果是“!*”。程序首先检查变量a是否等于0,如果等于0,则进入第一个switch语句,判断变量b是否小于0。如果b小于0,进入第一个case语句,输出“@”,然后跳出第一个switch语句。接着,程序继续执行第二个switch语句,判断变量c是否等于5。如果c等于5,进入第一个case语句,输出“*”,然后跳出第二个switch语句。此时,程序跳出第一个case语句,继续执行后面的default语句,输出“&”。由于程序中已经处理了所有的case语句和default语句,所以最后输出的结果就是“!*”。因此,答案为C选项:“!*”。'
  19. 若整型数据占两个字节,-1的补码为


  20. A:1000000000000001  B:1111111111111110 C: 0000000000000001 D:1111111111111111
    AI参考:答案:A:1000000000000001 。根据题目中给出的信息,整型数据占两个字节,因此整型数据在计算机中用两个字节表示。而题目中给出的数字 -1 的补码应该是表示该整型数据在计算机中的二进制表示。由于负数的补码是其绝对值的二进制表示取反加一,因此 -1 的补码应该是它的绝对值 1 的二进制表示取反再加一。而题目中已经给出数字 1 在等线字体下的二进制表示形式为 “CCCCCCC”,因此 -1 的补码应该为 “1 0000 0000 0000 0001”。综上所述,正确答案为 A:1000000000000001。'
  21. 若变量均已正确定义并赋值,以下合法的c语言赋值语句是( )。

  22. A:x=n%2.5; B:x=5=4=1; C:x=n=1 D:x=y==5;

  23. 以下选项中合法的用户标识符是


  24. A:3Dmax B:A.dat C: _2Test D: long

  25. float k=0.8567;
    printf(“%06.1f%%”,k*100);
    上面程序段的输出结果为( )。

  26. A:0085.7% B:0085.6% C:0085.6%% D:.857
    AI参考:输出结果为“0085.7%”。程序中使用了printf函数来输出浮点数k乘以100的结果,并使用格式化字符串"%06.1f%%"来指定输出格式。其中,%.1f表示输出一位小数的浮点数,而%%表示在输出结果中插入一个百分号。由于浮点数默认输出时小数点后有6位,所以在进行格式化时,输出的结果会被填充到6位,不足的部分用0填充。因此,最终的输出结果为“0085.7%”。'
  27. 以下叙述不正确的是( )

  28. A:一个C源程序可由一个或多个函数组成 B:一个C源程序必须包含一个main函数 C:C程序的基本组成单位是函数 D:在C程序中,注释说明只能位于一条语句的后面
    AI参考:不正确的是:D:在C程序中,注释说明只能位于一条语句的后面。在C语言中,注释用于对代码的说明,通常用于解释代码的目的或提供有关代码的功能信息。C语言中的注释有两种形式:单行注释和多行注释。单行注释以“/*”开头,以“*/”结尾,之间的内容被视为注释。多行注释以“/*”开始,可以包含任意数量的文本行,直到遇到“*/”为止。注释可以位于任何位置,包括语句之前或之后,甚至可以位于一个复合语句(多行)内部。因此,D选项中“在C程序中,注释说明只能位于一条语句的后面”是不正确的。'
  29. int a=10;
    printf(”%d”,a++);
    执行以上程序段后,输出结果和a的值是( )。

  30. A:10和11 B:11和11 C:11和10 D:10和10

  31. C语言源程序的最小单位是( )。

  32. A:函数 B:程序行 C:字符 D:语句

  33. Int j=-1;
    If(j<=1) printf(“****\n”);
    else printf(“%%%%\n”);
    执行上面语句后输出为( )。

  34. A:有错,执行不正确 B:%%%% C:%%%%c D:****
    AI参考:正确答案是D:****。根据题目中的代码,如果j小于等于1,则输出“****”,否则输出“%%%%”。因此,执行该代码后输出的结果应该是“****”。选项A和B都表示输出不正确,选项C则表示输出了一个字符c,而不是两个字符“%%%”。因此,正确答案是D。'
  35. void reverse(int m)
    {
    printf(“%d”,n%10);
    if(n/10!=0) reverse(n/10);
    }
    有如上递归过程,调用语句reverse(582)的结果为( )

  36. A:582 B:285 C:28 D:58

  37. 下列说法中正确的是( )。

  38. A:C程序书写时,一行只能写一个语句 B:C程序书写时,不区分大小写字母 C:C程序书写时每行必须有行号 D:C程序书写时,一个语句可分成几行书写

  39. for(i=4;i>1;i--)
    for(j=1;j<i;j++)
    putchar(‘#’);
    以上程序段的输出结果为( )。


  40. A:###### B:无 C:### D:#

  41. 简单变量做实参时,它和对应形参之间的数据传递方式是( )。

  42. A:由实参传给形参,再由形参传回给实参 B:由用户指定的传递方式 C:单向值传递 D:地址传递

  43. 以下常量中不合法的是( )

  44. A:0 B:’&’ C:‘ff’ D:‘xff’
    AI参考:正确答案是B:’&’。 常量是指在程序运行过程中不会发生变化的量,选项B中的’&’不是一个合法的常量,因为它不是一个数字、字母或符号。其他选项A、C、D都是合法的常量,其中A是一个整数0,C是一个字符f的ASCII码值,D是一个字符串xff。因此,答案为B。"
  45. 以下的选择中,正确的赋值语句是


  46. A: j++ B:y=int(x) C: a=b=5; D:a=1,b=2 

  47. 一个C语言程序是由( )。

  48. A:若干过程组成 B:一个主程序和若干个子程序组成 C:若干子程序组成 D:函数组成

  49. 下列四个选项中是C语言关键字的选项是( )


  50. A:gect B:define C:include D:while

  51. 提前定义int i=1,下列程序错误的是( )

  52. A:For(int i=1;i<10;i++) B:For(;1;) C:For(i=1;i<10;i++) D:For(;i<10;i++)
    AI参考:错误的是B: For(;1;)。这个for循环语句是无效的,因为它没有设定循环体的内容,导致循环永远不会结束。正确的for循环应该是像选项C和D那样,有明确的条件来决定循环的次数。选项A和D则是有效的for循环,因为它们都有正确的初始化、条件和递增操作。'
  53. 已知year为整型变量,不能使表达式(year%4==0&&year%100!=0)||year%400==0的值为“真”的数据是( )。

  54. A:1996 B:2000 C:1990 D:1992

  55. 以下变量中不合法的是( )

  56. A:name B:for_2 C:A5462 D:double
    AI参考:正确答案是B:for_2。变量名必须是合法的标识符,即必须遵循以下规则:1. 变量名不能是关键字。关键字是程序中预定义的,用于各种特殊用途的词语。比如:for,if,while等。2. 变量名不能是变量类型。变量类型通常由数据类型标识符表示,如int、double等。3. 变量名不能包含空格。空格在变量名中通常被视为无效字符。4. 变量名必须以字母或下划线开头。其他选项A、C、D都是合法的变量名,而B选项for_2不符合上述规则,因此不合法。所以答案是B:for_2。'
  57. 下列各语句定义了数组,其中哪一个是不正确的( )。

  58. A:int m[][3]={1,2,3,4,5,6} ; B:int x[2][2]={1,2,3,4} ; C:Char a[3][10]={"China","American","Asia"}; D:float x[2][ ]={1,2,4,6,8,10} ;

  59. 设n=10,i=4,则赋值运算n%=i+1执行后,n的值是( )。

  60. A:0 B:2 C:1 D:3

  61. 在c语言中,能代表逻辑值为“真”的是( )。

  62. A:非0整数 B:True C:非0的数 D:大于0的数
    AI参考:在C语言中,能代表逻辑值为“真”的是A:非0整数。C语言中的逻辑值是真(即非零)或假(即零),因为0在C语言中通常被视为false(假)。其他选项B,C,D都可能代表逻辑值为假,因为True在C语言中通常被视为非零的整数,大于0的数在逻辑上通常表示为真,但在C语言中并不直接代表逻辑值。因此,正确答案是A:非0整数。'
  63. 下面四个选项中是合法整型常量的选项是( )

  64. A:-Oxcdf B:160 C:-01 D:-0x48a

  65. main()
    {int j;
    J=3;
    printf(%d”,++j);
    printf(%d”,j++)
    }
    上面语句的结果是( )。

  66. A:4,3 B:3,3 C:3,4 D:4,4

  67. 已知字母A的ASC码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-’3’后,c2中的值
    为( )

  68. A:D B:68 C:不确定的值 D:C

  69. 下列各m的值中,能使m%3==2&&m%5==3&&m%7==2。( )

  70. A:6 B:23 C:8 D:17

  71. static有什么用途( )。


  72. A:设置变量的存储域 B:限制变量的作用域 C:默认初始化为0 D:保持变量内容的持久

  73. 下列哪项是非法的八进制表示


  74. A:int b=0151 B:int a=0101 C:int n=0910 D:int m=0x11100
    AI参考:正确选项是:B:int a=0101在八进制表示中,每一位的数字只能使用0-7之间的数字,不能使用字母或者特殊符号。选项B中,0101表示十进制的9,而不是八进制的9,所以选项B是非法八进制表示。选项A、C、D都是合法的八进制表示,因为它们分别使用了八进制数字0、9和十六进制的前缀0x来表示数字。'
  75. 在使用函数的嵌套调用时,被调用的函数可以没有返回值。( )

  76. A:对 B:错

  77. 一个递归函数必须有递归出口。


  78. A:对 B:错
    AI参考:答案是B:错。一个递归函数不一定必须有递归出口,也就是说,一个递归函数可能在没有明确的退出条件的情况下无限递归下去,导致程序陷入死循环。因此,是否需要递归出口取决于具体的递归函数和应用场景。"
  79. 语句int a[][3]={{1,2},{0}};能对二维数组a进行正确初始化。( )

  80. A:对 B:错

  81. 若有说明 int a[] [4]={0,0};有元素a[0][0]和元素a[1][0]可得到初值0,其他元素均得不到初值0。( )

  82. A:错 B:对

  83. 表达式 !!6的值是6


  84. A:错 B:对
    AI参考:答案是B:对。根据题目中给出的表达式,!6的值是true(非6,即等于0),而!!6的值就是0的否定值,即true,所以答案是B:对。"
  85. 如果i的原值为3,则:j=++i,j的值为3。( )

  86. A:对 B:错
    AI参考:答案是B:错。 在Java中,变量i的原值是3,执行j=++i后,i的值会增加1,变为4,而j的值仍然是3。因此,这个判断题是错误的。"
  87. 在C语言中,int数据类型占2个字节,float数据类型占8个字节 ( )

  88. A:对 B:错

  89. 循环结构中,break语句跳出当前的循环,执行循环结构后面的语句,而continue语句则是终止当前一轮的循环直接进入下一轮循环。( )

  90. A:对 B:错
    AI参考:答案是A:对。 在循环结构中,break语句可以跳出当前的循环,执行循环结构后面的语句。而continue语句则是终止当前一轮的循环直接进入下一轮循环。因此,这个说法是正确的。"
  91. 函数定义时,允许定义两个类型名不同,但变量名相同的形参。


  92. A:错 B:对
    AI参考:正确选项为B:对。函数定义时,允许定义两个类型名不同,但变量名相同的形参。这是因为变量名是局部的,只在函数内部有效,而函数内部的形参类型是可以不同的。这是符合编程语言的规范和惯例的。"
  93. for(int i=1;i<10;i++)与for(int i=1;i<=9;++i)结果相同( )

  94. A:错 B:对
    AI参考:正确答案是B:对。 for(int i=1;i<=9;++i)这个循环语句会执行9次,因为循环条件i<=9在每次循环结束后都会变为i+1,因此当i=9时,循环条件就不再满足,循环结束。而for(int i=1;i<10;i++)这个循环语句会执行10次,因为循环条件i<10在每次循环结束后不会变为i+1,因此当i=9时,循环仍然会继续执行,直到i=10时循环条件不再满足,循环结束。因此,这两个循环语句的结果是相同的。"
  95. 表示a110的之间的逻辑表达式是1<=a<=10


  96. A:对 B:错
    AI参考:答案是B:错。根据题目中的逻辑表达式,可以得出a的值必须在1到10之间,但是题目中使用了Times New Roman字体来表示一些特定的符号和文字,这不符合逻辑表达式的语法规则。因此,该逻辑表达式是不正确的。正确的表达式应该是< 10 && a>=1 && a<=10>,即=a小于等于10组成的逻辑表达式,这样可以符合逻辑表达式的语法规则。"
  97. 只有Windows系统才能编辑运行C程序。


  98. A:错 B:对
    AI参考:答案:B。题目中描述的是只有Windows系统才能编辑和运行C程序,因此该描述是正确的,即选项B为正确答案。"

温馨提示支付 ¥1.90 元后可查看付费内容,请先翻页预览!
点赞(1) dxwkbang
返回
顶部