|

 下列关于C语言的叙述错误的是( )。
A:大写字母和小写字母的意义相同
B:不同类型的变量可以在一个表达式中
C:在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D:同一个运算符号在不同的场合可以有不同的含义
以下在任何情况下计算两数积时都不会引起二义性的宏定义是( )。
A:#define MUL(x,y) x*y
B:#define MUL(x,y) (x)*(y)
C:#define MUL(x,y) (x*y)
D:#define MUL(x,y) ((x)*(y))"
若a、b、c均为int型变量,则执行以下程序段后的输出结果为( )。
b=(a=10,a+5,c=10);
printf("a=%d,b=%d,c=%d\n",a,b,c);
c=(a=10,b=5,a+b);printf("a=%d,b=%d,c=%d\n",a,b,c);
A:a=10,b=15,c=10a=10,b=5,c=10
B:a=10,b=10,c=10a=10,b=5,c=10
C:a=10,b=10,c=10a=10,b=5,c=15
D:a=10,b=10,c=10a=10,b=5,c=5
以下正确的函数形式是( )。
A:double fun1(int x, int y) { z=x+y; return z; }
B:fun1(int x, y){ int z;return z; }
C:fun1(x, y) { int x, y; double z;z=x+y;return z; }
D:double fun1(int x, int y){ double z;z=x+y; return z; }"
函数rewind(fp)的作用是:使文件位置指针( )。
A:重新返回文件的开头
B:返回到前一个字符的位置
C:指向文件的末尾
D:自动移至下一个字符的位置
若有语句: char s1[ ]="Shenyang", s2[10],*s3, *s4="NEU_soft"; 则对库函数strcpy调用正确的是( )。
A:strcpy(s1, s4);
B:strcpy(s2, s4);
C:strcpy(s3, s1);
D:strcpy(s4, s1);"
下面程序的运行结果是( )。
main()
{ struct cmplx { int x;
int y;
} cm[2]={1,2,3,4};
printf("%d\n", 2*cm[0].x+
cm[1].y/cm[0].y);}
A:5
B:2
C:3
D:4
以下程序执行后a的值为( )。
main( )
{ int a,m=2, k=1, *p=&k;
a=p!=&m;
printf("%d\n",a); }
A:-1
B:0
C:1
D:2
设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是( )。
for (y=100; x!=y; ++x,y++) printf("****\n");
A:循环体只执行一次
B:是无限循环
C:循环体一次都不执行
D:for语句中存在语法错误
已知学生记录描述如下,下面对结构体成员"computer"的赋值方式正确的是( )。
struct student
{ int num;
char name[8];
struct
{ float math;
float engl;
float computer;
} mark;} std;
A:student.computer=84;
B:mark.computer=84;
C:std.mark.computer=84;
D:std.computer=84;
以下对指针变量的操作中,不正确的是( )。
A:int p, *q; q=&p;
B:int *p, *q; q=p=NULL;
C:int a=5, *p; *p=a;
D:int a=5, *p=&a, *q=&a; *p=*q;"
若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是( )。
A:i=x[1][1]
B:i=*(*(x+1))
C:i=*(*(x+1)+1)
D:i=*(x[1]+1)
设有定义:int a=1, *p=&a; float b=2.0; char c='A'; ,以下不合法的运算是( )。
A:p++;
B:a--;
C:b++;
D:c--;
执行下面程序段后,x的值是( )。
int x;printf("%d\n",(x=3*5,x+5));
A:10
B:15
C:20
D:5
下面对typedef的叙述中不正确的是( )。
A:用typedef不能定义变量名
B:用typedef可以定义新的数据类型
C:用typedef只是将已存在的类型用一个新的标识符来代表
D:使用typedef有利于程序的通用和移植
以下正确的定义语句是( )。
A:int a[1][4]={1,2,3,4,5};
B:float x[3][]={{1},{2},{3}};
C:long b[2][3]={{1},{1,2},{1,2,3}};
D:double y[][3]={0};
若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A:数组元素x[5]的地址
B:数组元素x[5]的值
C:数组元素x[6]的地址
D:数组元素x[6]的值
E:选项内容11
F:选项内容11
设x,y是float型变量,则不正确的赋值语句是( )。
A:++x;
B:y=int(5);
C:x*=y+1;
D:x=y=0;
执行以下程序后,m的值是( )。
#define MIN(x, y) (x)<(y) ? (x) : (y)
main( )
{ int i=12, j=8, m;
m=10*MIN(i, j);
printf("%d\n", m); }
A:120
B:80
C:12
D:8
下列程序的输出结果是( )。
#include<stdio.h>
void fun();
void main()
{
int x=1;
if(x= =1)
{
int x=2;
printf(“%d”,++x);
}
void fun()
{
printf(“%d”,x++);}
A:2,1,1
B:1,2,1
C:2,2,2
D:2,2,1"
|
|