计算机等级考试(二级C语言)

已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是()A、scanf(“%d”,&a)B、scanf(“%lf”,&a)C、scanf(“%c”,&a)D、scanf(“%u”,&a)

题目

已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是()

  • A、scanf(“%d”,&a)
  • B、scanf(“%lf”,&a)
  • C、scanf(“%c”,&a)
  • D、scanf(“%u”,&a)
参考答案和解析
正确答案:B
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下结构体说明、变量定义和赋值语句 struct STD { char name[10]; int age; char sex; }s[5],*ps; ps=&s[0]; 则以下scanf函数调用语句中错误引用结构体变量成员的是______。

A.scanf("%s",s[0].name);

B.scanf("%d",&s[0].age);

C.scanf("%c",&(ps->sex));

D.scanf("%d",ps->age);


正确答案:D
解析:要给结构体成员输入数据,在scanf语句中需要使用结构体成员的地址。函数scanf是C语言的标准输入函数,其作用是在终端设备上输入数据,而且要求输入项必须是某个存储地址。选项A中是引用结构体数组s的第0个元素s[0]的name成员,name是包含10个元素的数组,数组名就表示数组的地址,也就代表s[0].name的地址,所以选项A是正确的。选项B显然也是正确的,选项C是先用指针变量引用结构体的成员sex后取它的地址,也是正确的。选项D用指针变量引用结构体的成员sex后没有再继续取其地址,所以是错误的。

第2题:

若有说明语句:double*P,a;则能通过scanf语句正确给输入项读入数据的程序段是( )。

A.*p=&a;scanf("%lf",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%lf",*p);

D.p=&a;scanf("%lf",p);


正确答案:D
解析:*p间接引用指针指向的变量,因此“(*p)=&a”不对。scanf()的输入变量必须为地址,因此C是错误的。

第3题:

有以下结构体说明、变量定义和赋值语句

struct STD

{ char name[10];

int age;

char sex;

} s[5],*ps;

ps=&s[0];

则以下 scanf 函数调用语句中错误引用结构体变量成员的是

A)scanf("%s",s[0].name);

B)scanf("%d",&s[0].age);

C)scanf("%c",&(ps->sex));

D)scanf("%d",ps->age);


正确答案:D
答案 D
解析:在 scanf 函数中,第 2 个参数应该表示为地址变量,而选项 D 只是一个具体的值,而并不是一个地址值。

第4题:

已知int a,b;double c;,则以下语句中错误的函数调用是A.scanf("%d,%x,%lf",&a,&b,&c); B.scanf("%d,%d,%le",&a,&b,&c);C.scanf("%o,%x,%o",&a,&b,&c); D.scanf("%d,%o,%e",&a,&b,&c);


正确答案:C
本题主要考查格式输入函数scanf。此函数一般的输入形式是scanf(格式控制,地址表列);。函数“格式控制”的含义同printf函数,以%开始,以一个格式字符结束,中间可以插入附加的字符。常用的格式字符主要有:
d:用来输入有符号的十进制整数。
u:用来输入无符号的十进制整数。
o:用来输入无符号的八进制整数。
x:用来输入无符号的十六进制整数(大小写作用相同)。
c:用来输入单个字符,包括回车键。
s:用来输入字符串,将字符串送到一个字符数组中,在输入时以非空格字符开始,以第一个空格字符结束。字符串以串结束标志’\0’作为其最后一个字符。
f:用来以小数形式输入实数(包括浮点型和双精度型)。
e:用来以指数形式输入实数。
scanf的附加格式说明字符:
L、l:用于输入长整型数据(可用%ld,%lo,%lx)及double型数据(用%lf)。
h:用于输入短整型数据(可用%hd,%ho,%hx)。
域宽:指定输入数据所占宽度(列数),域宽应为正整数。
*:%后的“*”附加说明符用来表示跳过它相应的数据。
在本题中,由于变量a和b是整型变量,而c是双精度类型。很显然,选项C中的描述不正确,它用%o输出实数。

第5题:

已知inta,b;doublec;则以下语句中错误的函数调用是 A.scanf("%d,%x,%lf",&a,&am

已知int a,b;double c;则以下语句中错误的函数调用是

A.scanf("%d,%x,%lf",&a,&b,&c);

B.scanf("%d,%d,%le",&a,&b,&c);

C.scanf("%o,%x,%o",&a,&b);

D.scanf("%d,%o,%e",&a,&b,&c);


正确答案:D

第6题:

以下scanf函数调用语句中对结构体变量成员的引用不正确的是

struct pupil

{ char name[20];

int age

int sex;

} pup[5],*p;

p=pup;

A.scanf("%s",pup[0].name);

B.scanf("%d",&pup[0].age);

C.scanf("%dT",&(p->sex));

D.scanf("%d",p->age);


正确答案:D
解析:考查结构体成员变量的引用方法。可用结构体变量名.数据成员名或者结构体指针->数据成员名两种方法来引用。 结构体类型的变量、数组和指针变量的定义。

第7题:

若有“double a;”,则正确的输入语句是( )。

A.scanf("%1f",a);

B.scanf("%f",&a);

C.scanf("%lf",&a)

D.scanf("%le",&a);


正确答案:D
解析:scanf函数的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。题中定义变量a为双精度型变量,双精度变量的格式符为“le”;变量的地址用取地址符“&”加变量名表示,例如变量a的地址为“&a”。

第8题:

(16)若有定义语句:double x,y,*px,*py,执行了px=&x, py=&y;之后,正确的输入语句是

A)scanf(“%f%f”,x,y); B) scanf(“%f%f”,&x,&y);

C) scanf(“%lf%le”,px,py); D) scanf(“%lf%lf”,x,y);


正确答案:C

第9题:

C语言中,getchar()函数与scanf()函数的区别在于getchar()只能用于字符的输入,而scanf()可以输入任意类型的数据。

此题为判断题(对,错)。


正确答案:√

第10题:

若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是()。

A.scanf("%d%lx,%le",&x,&y,&z);

B.scanf("%2d*%d%lf"&x,&y,&z);

C.scanf("%x%*d%o",&x,&y);

D.scanf("%x%o%6.2f",&x,&y,&z)


正确答案:D

更多相关问题