前言:
今天大家对“c语言输出0100”大致比较关注,咱们都想要剖析一些“c语言输出0100”的相关知识。那么小编也在网上收集了一些对于“c语言输出0100””的相关知识,希望朋友们能喜欢,咱们快快来学习一下吧!单选题
struct {
short a;
char b;
float c;
}cs;
sizeof(cs)的值是
A 4
B 5
C 7
D 8
正确答案:D
参考答案:应该是8。 首先看各类型元素占的字节数: short是2字节 char是1字节 float是4字节 过程: 首先short占了2字节,然后轮到char,他只占1但是由于已经有了short的2字节所以整个结构体需要是2字节的倍数,因此char占了1字节之后对齐补上1字节。最后轮到float,4字节,是2的倍数所以不用补。 现在整个结构体就是2+(1+1)+4=8,结构体的大小需要是最长元素的倍数,也就是4的倍数,很显然满足,所以最终答案就是8。
单选题 下面程序段的运行结果是()
int x, y;
x = y = 0;
while (x < 15) y++, x += ++y;
printf("%d,%d", y, x);
A 20,7
B 6,12
C 20,8
D 8,20
正确答案:D
单选题
int a = 5, b = -5;
printf("%d,%d", a%(-4), b%(-4));
上面代码段的输出为()
A 1,-1
B 1,1
C -1,1
D -1,-1
正确答案:A
求余符号的正负取舍和被除数符号相同
多选题 下面声明正确的是()
A int a[5] = {0, 1, 2, 3, 4, 5};
B char a[] = {0, 1, 2, 3, 4, 5};
C char a = {'A', 'B', 'C'};
D int a[5] = {0123};
正确答案:BD
选项D: int a[5] = {0123}; 0123是八进制表示法
单选题 以下程序运行后的输出是()
#include <stdio.h>
int main(void){
int x = 10, y = 20, t = 0;
if (x == y) t = x; x = y; y = t;
printf("%d, %d\n", x, y);
return 0;
}
A 10, 20
B 20, 0
C 10, 0
D 20, 10
正确答案:B
单选题 执行c程序代码
int a = 1;
int b = 0;
int c = 0;
int d = (++a) * (c = 1);
a,b,c,d的值分别为()。
A 2,0,1,2
B 1,0,1,1
C 2,0,1,1
D 2,0,0,2
正确答案:A
单选题 如果c为字符型变量,判断c是否为空格(假设已知空格ASCII码为32)不能使用()
A if(c==32)
B if(c=='32')
C if(c=='\40')
D if(c==' ')
正确答案:B
单选题 假定x=500,下面函数的返回值是 ()
int fun(int x){
int countx = 0;
while (x) {
countx++;
x = x & (x – 1);
}
return countx;
}
A 2
B 3
C 5
D 6
正确答案:D
500 1 1111 0100
单选题 阅读下面代码,程序会打印出来的值是?
#include <stdio.h>
void f(char **p) { *p += 2; }
void main() {
char *a[] = {"123", "abc", "456"}, **p;
p = a;
f(p);
printf("%s", *p);
}
A 123
B abc
C 456
D 3
正确答案:D
参考答案:*p+=2;就相当于*p=*p+2; 其中*p指向字符串“123”的第一个元素,即‘1’,指针p向后移两个元素的地址,即指向‘3’ 而*(p+2)才是基于p每次向后移一个字符串的长度,即*(p+2)指向“456”
单选题 有如下代码,则 z 的结果为()
int a = 5, b = 6, c = 12;
int z = (a * b - c) / a;
A 6
B 3
C 4
D 5
正确答案:B
单选题 有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是()
struct node
{
char data;
struct node *next;
} a, b, *p = &a, *q = &b;
A a.next=q;
B p.next=&b;
C p->next=&b;
D (*p).next=q;
正确答案:B
单选题 下面程序的运行结果是()
#include <stdio.h>
int main() {
int a=1, b=10;
do {
b-=a;
a++;
}while(b--<0);
printf("a=%d,b=%d\n", a, b);
}
A a=3,b=11
B a=2,b=8
C a=1,b=-1
D a=4,b=9
正确答案:B
单选题 以下程序的输出结果是()
int main() {
int s, i;
for(s = 0, i = 1; i < 3; i++, s += i);
printf("%d\n", s);
}
A 1
B 3
C 5
D 7
正确答案:C
单选题 下列程序的输出是()
#include <stdio.h>
int main(void) {
int a[12] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, *p[4], i;
for (i = 0; i < 4; i++) p[i] = &a[i * 3];
printf("%d\n", p[3][2]);
return 0;
}
A 上述程序有错误
B 6
C 8
D 12
正确答案:D
单选题 下列字符序列中,可用作为C语言标识符的一组字符序列是( )
A S.b,sum,average,_above
B class,day,lotus_1,2day
C #md,&12x,month,student_n!
D D56,r_1_2,name,_st_1
正确答案:D
单选题 以下叙述中正确的是()
A 在一个程序中,允许使用任意数量的#include命令行
B 在包含文件中,不得再包含其他文件
C #include命令行不能出现在程序文件的中间
D 虽然包含文件被修改了,包含该文件的源程序也可以不重新进行编译和连接
正确答案:A
单选题 若char a[10];已定义,以下语句中不能从键盘上给 a 数组的所有元素赋值的语句是( )
A gets(a);
B scanf("%s",a);
C for(i=0;i<10;i++)a[i]=getchar();
D a=getchar();
正确答案:D
单选题 以下定义中,指向数组的指针P的是()
A int (*p)[5]
B int *p[5]
C (int*)p[5]
D int *p[]
正确答案:A
单选题 对两个数组a和b进行如下初始化
char a[] = "ABCDEF";
char b[] = {'A', 'B', 'C', 'D', 'E', 'F'};
则以下叙述正确的是( )
A a与b数组完全相同
B a与b长度(sizeof比较)相同
C a数组比b数组sizeof结果小
D a数组比b数组sizeof结果大
正确答案:D
单选题 以下程序的运行结果是
#include <stdio.h>
int main() {
char a[] = "programming", b[] = "language";
char *p1, *p2;
int i;
p1 = a, p2 = b;
for (i = 0; i < 7; i++)
if (*(p1 + i) == *(p2 + i)) printf("%c", *(p1 + i));
}
A gm
B rg
C or
D ga
正确答案:D
单选题 与声明:char str[10]={‘a’,’b’,’c’,’\0’}; 相等的声明是
A char str[10] = "abc\0";
B char *str = "abc";
C char str[] = "abc";
D char str[10] = "abc";
正确答案:D
单选题 C 语言本身有输入输出语句。
A 正确
B 错误
正确答案:B
单选题 下述程序的运行结果为()
#include<stdio.h>
void abc(char*str) {
int a, b;
for(a = b = 0; str[a] != '\0'; a++)
if(str[a] != 'c')
str[b++] = str[a];
str[b] = '\0';
}
int main() {
char str [] = "abcdef";
abc(str);
printf("str[]=%s", str);
}
A str[]=abdef
B str[]=abcdef
C str[]=a
D str[]=ab
正确答案:A
单选题 下面函数输出结果是()
int main() {
int k = 12345;
printf("%2d\n", k);
return 0;
}
A 12
B 45
C 12345
D 无法通过编译
正确答案:C
%d 是输出十进制整数
%02d:默认情况下,数据数据宽度不够2位是用空格填补的,但是因为2d前面有0,表示,数据宽度不足时用0填补。
标签: #c语言输出0100