以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )。 main() { int *p, *q, a, b; p = &a; printf(“input a: “); scanf(“%d”, *p); ……; }
A. *p表示是指针变量p的地址
B. *p表示的是变量a的值,而不是变量a的地址
C. *p表示的是指针变量p的值
D. *p只能用来说明p是一个指针变量
查看答案
已有如下说明: float *p, m = 3.14; 且需要使指针变量p指向变量m,则正确的赋值语句是( )。
A. p = m;
B. p = &m
C. *p = m;
D. *p = &m;
下面程序段的运行结果是( )。 char *s = “abcde”; s += 2; printf(“%d”, s);
A. cde
B. 字符’c’
C. 字符’c’的地址
D. 不确定输出结果
设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的语句是( )。
A. c = *p1 + *p2;
B. p2 = c;
C. p1 = p2;
D. c = *p1 * (*p2);
若有以下定义,则在下面表达式中不表示s[1]的地址的是( )。 char s[10];
A. s + 1
B. s++
C. &s[0] + 1
D. &s[1]